Time
tidak disimpan dengan format tampilan di SQL Server.
Oleh karena itu, dari sudut pandang pengguna, Anda dapat mengatakan bahwa itu tidak memiliki format.
Tentu saja, itu tidak sepenuhnya akurat karena memiliki format penyimpanan , tetapi sebagai pengguna biasa, Anda tidak dapat benar-benar menggunakannya.
Ini berlaku untuk semua jenis data tanggal dan waktu:Date
, DateTimeOffset
, DateTime2
, SmallDateTime
, DateTime
dan Time
.
Jika Anda membutuhkan format maka Anda tidak perlu membuang time
tetapi untuk sebuah char
. Gunakan Convert
untuk mendapatkan char
Anda membutuhkan:
SELECT CONVERT(char(10), [time], 108) as CSTTime
Berikut adalah beberapa data latar belakang jika Anda tertarik:
Pada artikel yang diterbitkan pada tahun 2000 ini penulis menjelaskan secara mendalam bagaimana SQL Server memperlakukan tanggal dan waktu. Saya ragu apakah ada perubahan signifikan antara tahun 2000 dan 2015 dalam cara SQL Server menyimpan date
, time
dan datetime
nilai secara internal.
Berikut kutipan yang relevan, jika Anda tidak ingin membaca semuanya:
Jadi bagaimana SQL Server menyimpan tanggal secara internal? Ini menggunakan 8 byte untuk menyimpan nilai datetime—4 pertama untuk tanggal dan 4 kedua untuk waktu. SQL Server dapat menginterpretasikan kedua set 4 byte sebagai bilangan bulat.
........
........
SQL Server menyimpan bilangan bulat kedua untuk waktu sebagai jumlah jam berdetak setelah tengah malam. Satu detik berisi 300 tick, jadi satu tick sama dengan 3,3 milidetik (ms).
sejak time
sebenarnya disimpan sebagai bilangan bulat 4 byte, itu benar-benar tidak memiliki format sebagai bagian integral dari tipe data.
Anda mungkin juga ingin membaca artikel ini untuk penjelasan yang lebih mendetail dengan contoh kode.