Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kueri membandingkan tanggal dalam SQL

Alih-alih '2013-04-12' yang artinya tergantung pada budaya lokal, gunakan '20130412' yang dikenal sebagai format invarian budaya.

Jika Anda ingin membandingkan dengan 4 Desember, Anda harus menulis '20131204'. Jika ingin membandingkan dengan 12 April, tulis '20130412'.

Artikel Write International Transact-SQL Statements dari dokumentasi SQL Server menjelaskan cara menulis pernyataan yang bersifat culture invariant:

Aplikasi yang menggunakan API lain, atau skrip Transact-SQL, prosedur tersimpan, dan pemicu, harus menggunakan string numerik yang tidak dipisahkan. Misalnya, yyyymmdd sebagai 19980924.

EDIT

Karena Anda menggunakan ADO, opsi terbaik adalah membuat parameter kueri dan meneruskan nilai tanggal sebagai parameter tanggal. Dengan cara ini Anda menghindari masalah format sepenuhnya dan mendapatkan manfaat kinerja dari kueri berparameter juga.

PERBARUI

Untuk menggunakan format ISO 8601 secara literal, semua elemen harus ditentukan. Mengutip dari bagian ISO 8601 dari dokumentasi datetime

Untuk menggunakan format ISO 8601, Anda harus menentukan setiap elemen dalam format. Ini juga mencakup T, titik dua (:), dan titik (.) yang ditampilkan dalam format.

... pecahan dari komponen kedua adalah opsional. Komponen waktu ditentukan dalam format 24 jam.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana sp_describe_first_result_set Bekerja di SQL Server

  2. Bagaimana cara mengubah String ke Hex dan sebaliknya?

  3. Pengidentifikasi multi-bagian tidak dapat diikat

  4. Cara Menambahkan File Data ke Database SQL Server (T-SQL)

  5. Bagaimana cara MEMPERBARUI dari SELECT di SQL Server?