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

Mustahil untuk menyimpan format datetime tertentu di SQL Server

SQL Server tidak menyimpan DateTime dalam format string apa pun - disimpan sebagai nilai numerik 8 byte.

Berbagai pengaturan (bahasa, format tanggal) hanya memengaruhi cara DateTime ditampilkan kepada Anda di SQL Server Management Studio - atau bagaimana string tersebut diuraikan saat Anda mencoba mengonversi string menjadi DateTime .

Ada banyak format yang didukung oleh SQL Server - lihat Buku MSDN Online di CAST dan KONVERSI . Sebagian besar format tersebut bergantung pada setelan apa yang Anda miliki - oleh karena itu, setelan ini mungkin berfungsi beberapa kali - dan terkadang tidak.

Cara mengatasinya adalah dengan menggunakan format tanggal ISO-8601 yang didukung oleh SQL Server - format ini berfungsi selalu - terlepas dari bahasa SQL Server dan pengaturan format tanggal.

Format ISO-8601 didukung oleh SQL Server hadir dalam dua rasa:

  • YYYYMMDD hanya untuk tanggal (tidak ada porsi waktu) - perhatikan di sini:tidak ada tanda hubung! , itu sangat penting! YYYY-MM-DD adalah TIDAK terlepas dari pengaturan format tanggal di SQL Server Anda dan akan TIDAK bekerja dalam segala situasi!

atau:

  • YYYY-MM-DDTHH:MM:SS untuk tanggal dan waktu - perhatikan di sini:format ini memiliki tanda hubung.

Ini berlaku untuk SQL Server 2000 dan yang lebih baru.

Jika Anda menggunakan SQL Server 2008 dan DATE tipe data (hanya DATE - tidak DATETIME !), maka Anda juga dapat menggunakan YYYY-MM-DD format dan itu akan berfungsi juga, dengan pengaturan apa pun di SQL Server Anda.

Jangan tanya saya mengapa seluruh topik ini begitu rumit dan agak membingungkan - memang begitu adanya. Tapi dengan YYYYMMDD format, Anda akan baik-baik saja untuk semua versi SQL Server dan untuk bahasa dan pengaturan format tanggal apa pun di SQL Server Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Peningkatan identitas melompat di database SQL Server

  2. bagaimana cara memisahkan string menjadi kolom yang berbeda?

  3. Jangan Gunakan sp_depends di SQL Server (Sudah Usang)

  4. Optimalkan kinerja sub-kueri

  5. Sql mengubah data menjadi satu baris dari beberapa kolom