Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membandingkan Nilai Masa dengan Cekap dalam SQL Server?
Membandingkan Masa dalam SQL Server
Apabila membandingkan nilai masa dalam pertanyaan SQL, adalah penting untuk mengasingkan komponen masa daripada tarikh. Pendekatan yang diberikan untuk menggunakan convert(datetime, ...) kepada perwakilan rentetan dan kemudian membandingkan adalah tidak disyorkan kerana prestasinya yang perlahan.
Kaedah yang lebih cekap ialah memanfaatkan perwakilan titik terapung intrinsik SQL Server tarikh. Bahagian integer mewakili tarikh, manakala bahagian perpuluhan mewakili masa.
declare @first datetime set @first = '2009-04-30 19:47:16.123' declare @second datetime set @second = '2009-04-10 19:47:16.123' select (cast(@first as float) - floor(cast(@first as float))) - (cast(@second as float) - floor(cast(@second as float))) as Difference
Pendekatan ini menolak bahagian kamiran tarikh, hanya meninggalkan bahagian perpuluhan (masa). Perbezaan yang terhasil mewakili perbezaan masa.
Sebagai contoh, membandingkan '08:00:00' dan '07:30:00' dalam SQL Server menggunakan kaedah ini:
declare @first datetime set @first = '08:00:00.000' declare @second datetime set @second = '07:30:00.000' select (cast(@first as float) - floor(cast(@first as float))) - (cast(@second as float) - floor(cast(@second as float))) as Difference
Hasil :
Difference ------------ 0.5
Ini mengesahkan bahawa '08:00:00' lebih besar daripada '07:30:00' selama 30 minit.
Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Nilai Masa dengan Cekap dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!