I'm mencoba:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A. Tanggal
terlihat seperti: 2010-03-04 00:00:00.000
Namun, ini tidak bekerja.
Siapa pun dapat memberikan referensi untuk mengapa?
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Dalam kueri anda, 2010-4-01
diperlakukan sebagai suatu ekspresi matematika, jadi pada dasarnya itu baca
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 minus 4 dikurangi 1 tahun 2005
Mengubahnya ke yang tepat datetime
, dan menggunakan tanda kutip tunggal akan memperbaiki masalah ini.)
Secara teknis, parser akan memungkinkan anda untuk pergi dengan
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
ia akan melakukan konversi untuk anda, tapi menurut saya itu kurang dapat dibaca dari secara eksplisit mengkonversi ke DateTime
untuk pemeliharaan programmer yang akan datang setelah anda.