none
(Sumber: milist DOTNET) Perintah SQL dengan kondisi Tanggal

    Question

  • To. Para Master.

     

    Saya Sedang mengalami masalah pada saat pemanggilan data dbf dengan perintah SQL dimana dengan filter atau kondisi tanggal.

    contoh:

    "select * from xx.dbf where tanggal='01/01/2012'"

     

    Tapi perintah diatas error : type mismatch in criteria expression.

     

    Mohon Bantuannya.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Friday, January 13, 2012 9:28 AM
    Moderator

Answers

All replies

  • Format tanggal untuk SQL adalah yyyy-MM-dd Ganti query Anda menjadi "select * from xx.dbf where tanggal='2012-01-01'"

     

    Dijawab oleh: Ahmad Masykur


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Friday, January 13, 2012 9:30 AM
    Moderator
  • FoxPro/dBase bukan?

    Keliatannya utk tanggal harus pake tanda pagar (#), bukan petik (').

    select * from xx.dbf where tanggal = #01-01-2012#

     

    Dijawab oleh: Radityo Ardi


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Friday, January 13, 2012 9:30 AM
    Moderator
  • Apakah data tanggalnya hanya berisi tanggal (date) saja yyyy/mm/dd dan tidak ada komponen waktunya (time) seperti yyyy/mm/dd hh:MM:ss ?

    Jika setiap data tanggal jatuh pada jam 12:00:00 AM maka pasti datanya keluar semua. Karena kalau ada komponen waktu, maka anda tidak bisa menggunakan operator ‘=’ (sama dengan) kecuali spesifikasi query-nya lengkap seperti contoh berikut.

     

    SELECT [Id],[Tanggal] FROM [Test].[dbo].[DemoTanggal]

      WHERE Tanggal='2012-01-13 12:36:54.377'; /* ß spesifikasi tanggal/waktu dengan lengkap  */

     

    Untuk meng-query komponen tanggal saja gunakan fungsi DATEADD() atau DATEDIFF() atau CAST(), misalnya,

     

    SELECT [Id],[Tanggal] FROM [DemoTanggal]

      WHERE DATEADD(dd, 0, DATEDIFF(dd, 0,[Tanggal]))='2012-01-13';

     

    Makna  dari DATEADD(dd, 0, DATEDIFF(dd, 0,[Tanggal])) akan me-reset waktu pada komponen data tersebut menjadi jam 12:00:00 AM (00:00:00.000). Karena jika anda menggunakan operator=(sama dengan) harus SAMA secara absolut baik dari bentuk data dan isi data. Makna dari '2012-01-13' pada contoh diatas adalah sama dengan '2012-01-13 00:00:00.000' atau '2012-01-13 12:00:00 AM'.

     

    Mudah2an bisa difahami.

     

    Dijawab oleh: Riza Marhaban


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Friday, January 13, 2012 9:31 AM
    Moderator
  • Masih nggak bisa mas ket. Error nya sama.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Friday, January 13, 2012 9:31 AM
    Moderator
  • Hihihi.... pada jawab keliru. Dikiranya SQL Server.

    Aku agak curiga, soalnya ada .dbf-nya.

    Makanya kutanya, apakah itu database FoxPro/dBase? Kalo iya, maka query tanggal nggak bisa pake tanda petik.

    Harus pake tanda pager, atau convert string itu ke Date, baru bisa jalan querynya.

    select * from xx.dbf where tanggal = #01-01-2012#

     

    Perhatikan juga, format date time di DBF itu ngikut culture mana? en-US atau id-ID?

     

    Dijawab oleh: Radityo Ardi


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Friday, January 13, 2012 9:32 AM
    Moderator