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

Pengaturan mana yang menyediakan format datetime default SQL Server?

Jangan lakukan itu! Jangan gunakan string alih-alih tanggal dan jangan gunakan tanggal atau format tanggal khusus budaya, ini adalah resep untuk bencana.

SQL Server tidak memiliki "format tanggal", hanya format yang digunakan untuk mengonversi tanggal ke dan dari string. Salah satunya adalah default, dikendalikan oleh susunan server. Anda tidak dapat berasumsi atau bergantung pada susunan tertentu, jadi Anda harus menghindari konversi bila memungkinkan. Selain itu, meneruskan nilai string dapat mencegah SQL Server menggunakan indeks pada kolom tanggal karena harus mengonversi string ke tipe kolom yang mendasarinya.

Jauh lebih mudah dan aman untuk melewatkan tanggal sebagai variabel atau parameter yang diketik tanggal. Anda menghindari seluruh kekacauan konversi dengan cara ini, ke dan dari dan menghindari serangan injeksi SQL.

Tidak ada alasan untuk meneruskan string alih-alih tanggal ke server. Semua klien SQL Server (termasuk ADO.NET) memungkinkan Anda untuk menjalankan kueri berparameter. ORM seperti NHibernate dan Entity Framework juga menghasilkan kueri berparameter untuk kolom yang diketik tanggal.

Kapan pun Anda perlu membuat string literal, gunakan salah satu format invarian seperti 20140913 atau 2012-11-07T18:26:20

Anda dapat membaca lebih lanjut tentangnya di Menulis Pernyataan T-SQL Internasional



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kinerja pendekatan yang berbeda untuk data berbasis waktu

  2. Apa yang BUKAN Operator Logis di SQL Server - Tutorial SQL Server / TSQL Bagian 121

  3. Perbarui catatan dalam tabel dari CTE

  4. Buat prosedur tersimpan untuk ditambahkan dengan kenaikan otomatis sebagai bidang utamanya?

  5. Inner Bergabung dengan tiga tabel