Dalam SQL Server, jenis data Masa menyimpan nilai masa tetapi tidak termasuk format paparan tertentu. Untuk mengekstrak nilai masa dalam format HH:MM:SS, kita perlu menukar medan DateTime kepada rentetan aksara.
Menggunakan fungsi CONVERT, kita boleh menukar medan DateTime menjadi rentetan dengan format yang dikehendaki seperti berikut:
<code class="language-sql">SELECT CONVERT(varchar(8), CAST([datetime] AS TIME), 108) AS [CSTTime]</code>
Arahan:
CONVERT
menukar medan [datetime]
kepada rentetan aksara. varchar(8)
menentukan panjang rentetan hasil (8 aksara dalam kes ini). Menggunakan varchar
adalah lebih cekap daripada char
kerana varchar
hanya menyimpan bilangan sebenar aksara yang digunakan. CAST([datetime] AS TIME)
Menukar nilai datetime
kepada jenis data TIME
, mengalih keluar bahagian tarikh. 108
mengarahkan SQL Server untuk menukar nilai Masa kepada format HH:MM:SS, mengabaikan milisaat. Contoh:
Memandangkan nilai DateTime '2015-03-19 00:00:00.000', pertanyaan di atas akan mengembalikan '00:00:00'. Ambil perhatian bahawa jika datetime
mengandungi maklumat masa, maklumat masa itu akan dikembalikan.
Latar belakang teknikal:
Secara dalaman, SQL Server menyimpan nilai Masa sebagai integer 4-bait yang mewakili bilangan detik jam selepas tengah malam. Setiap tanda mewakili 3.3 milisaat. Oleh itu, jenis data Masa itu sendiri tidak mempunyai format paparan tertentu.
Apabila menukar DateTime kepada Masa menggunakan sintaks CAST, milisaat dikekalkan dalam nilai Masa yang terhasil. Untuk mendapatkan rentetan berformat dalam format HH:MM:SS, anda perlu menggunakan fungsi CONVERT. Menggunakan CAST
untuk menukar nilai kepada jenis TIME
dahulu, dan kemudian menggunakan CONVERT
untuk memformat output, memastikan hasil penukaran yang lebih jelas dan tepat.
Atas ialah kandungan terperinci Bagaimana untuk Menukar SQL Server DateTime kepada Format Masa HH:MM:SS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!