Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membandingkan Nilai Masa dengan Cekap dalam SQL Server?

Bagaimana untuk Membandingkan Nilai Masa dengan Cekap dalam SQL Server?

Patricia Arquette
Lepaskan: 2024-12-25 08:27:50
asal
852 orang telah melayarinya

How to Efficiently Compare Time Values in 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
Salin selepas log masuk

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
Salin selepas log masuk

Hasil :

Difference
------------
0.5
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan