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

Ubah format tanggal default yang disimpan dalam database

Itulah inti kebingungannya. Hanya karena SQL Server Management Studio menampilkan kolom datetime dalam format tersebut tidak berarti disimpan SEBAGAI TEKS YYYY-MM-DD jj:mm:ss.zzz. Itu disimpan sebagai biner, seperti 0000101000001010..

Tanggal Anda disimpan di SQL Server sebagai serangkaian byte (bit benar-benar) yang membentuk beberapa nilai numerik yang merupakan offset dari 1900-01-01. Tidak ada format yang melekat pada tanggal. Yang Anda maksud adalah bahwa SSMS secara default menampilkan kolom datetime [tampilan] sebagai YYYY-MM-DD jj:mm:ss.zzz. Jika Anda menggunakan alat pemrograman front-end, itu juga dapat memaksakan format [tampilan] default kecuali Anda meminta yang lain.

Sama sekali TIDAK ada cara untuk membuat SSMS menampilkan data datetime dalam format lain melalui opsi atau konfigurasi. Jika harus, Anda harus memperbarui kueri SQL untuk mengonversi kolom datetime ke kolom VARCHAR yang berisi TEXTual yang setara dalam format tertentu. Itu mungkin berguna di SSMS, tetapi akan menjadi buruk bila digunakan sebagai sumber data untuk aplikasi GUI/web front-end - karena nilainya bukan waktu dan tidak dapat digunakan untuk penghitungan interval, grafik, kontrol terikat tanggal, dll.

Lihat contoh menampilkan waktu (getdate()) sebagai YYYY-DD-MM, format yang sangat tidak biasa. Perhatikan bahwa bidang/variabel tanggal harus digunakan dua kali:

select stuff(convert(char(7), getdate(), 120), 5, 0, '-' + convert(char(2), getdate(), 3))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql Server - terhubung dengan otentikasi windows

  2. Toko Kueri SQL Server

  3. Mengapa IsNull dua kali lebih lambat dari penggabungan (permintaan yang sama)?

  4. Ubah Kunci Utama dari Nonclustered menjadi Clustered

  5. Transaksi harus ditangani di .NET atau SQL Server?