DateTime veritabanı alanını belirli bir aralıkta nasıl sorgulayabilirim?
SQL SERVER 2005 kullanıyorum
Aşağıdaki hata kodu
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
Belirli bir zaman aralığındaki satırları almam gerektiğini unutmayın. Örnek, 10 dakika zaman aralığı.
Şu anda SQL '12'." yakınında Hatalı sözdizimi ile dönüyor;
Tek tırnak işaretini atlamışsın:
SELECT *
FROM TABLENAME
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
Ayrıca, ISO8601 formatını YYYY-MM-DDThh:mm:ss.nnn[ Z ] kullanmanız önerilir, çünkü bu sunucunuzun yerel kültürüne bağlı olmayacaktır.
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2011-05-25T03:53:04.000'
Tarih olarak göstermeye çalıştığınız dizenin etrafında tırnak işaretlerine ihtiyacınız vardır ve burada BETWEEN de kullanabilirsiniz:
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
Biçimi belirtirken dizelerin açıkça tarihlere nasıl dönüştürüleceğine ilişkin örnekler için aşağıdaki sorunun yanıtına bakın:
https://stackoverflow.com/questions/207190/sql-server-string-to-date-conversion
SELECT *
FROM TABLENAME
WHERE [DateTime] >= '2011-04-12 12:00:00 AM'
AND [DateTime] <= '2011-05-25 3:35:04 AM'
Bu işe yaramazsa, lütfen tablonuzu yazıp buraya gönderin. bu size doğru cevabı hızlı bir şekilde vermemize yardımcı olacaktır.