Bagaimana query untuk semua tanggal yang lebih besar dari tanggal tertentu di SQL Server?

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?

Mengomentari pertanyaan (2)
Larutan
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.

Komentar (4)

Mencoba melampirkan tanggal menjadi string karakter.

 select * 
 from dbo.March2010 A
 where A.Date >= '2010-04-01';
Komentar (1)

Kita dapat gunakan seperti di bawah ini juga

SELECT * 
FROM dbo.March2010 A
WHERE CAST(A.Date AS Date) >= '2017-03-22';

SELECT * 
    FROM dbo.March2010 A
    WHERE CAST(A.Date AS Datetime) >= '2017-03-22 06:49:53.840';
Komentar (1)
DateTime start1 = DateTime.Parse(txtDate.Text);

SELECT * 
FROM dbo.March2010 A
WHERE A.Date >= start1;

Pertama mengkonversi TexBox ke Datetime kemudian....menggunakan variabel yang menjadi Query

Komentar (0)

Untuk jumlah semuanya, jawaban yang benar adalah.....

select * from db dimana Tanggal >= '20100401' (Format tanggal yyyymmdd)

Ini akan menghindari masalah dengan bahasa lain sistem dan akan menggunakan indeks

Komentar (0)