2011-02-07 108 views
1

我正在使用以下查詢來列出指定的日期之間的這些記錄。但是,它不工作。此外,不要給我錯誤。剛剛到來的空白screen.it的列名稱。 以下查詢有何問題?SQL查詢問題

SET DATEFORMAT dmy 
select *from tamirarizakaydi where tarih between '31.01.2011 ' and ' 04.02.2011' 

在此先感謝。

+0

在'04.02.2011'開頭和'31 .01.2011'末尾有一個多餘的空間,'不知道這是否會影響任何東西。 「tarih」列的數據類型是什麼?也使用ISO格式`yyyymmdd`。 – 2011-02-07 15:11:44

回答

2

就我所見,前後空格沒有任何區別。

SET DATEFORMAT dmy 
select CAST('31.01.2011 ' as date) , CAST(' 04.02.2011' as date), CAST('31.01.2011 ' as datetime), CAST(' 04.02.2011' as datetime) 

返回

---------- ---------- ----------------------- ----------------------- 
2011-01-31 2011-02-04 2011-01-31 00:00:00.000 2011-02-04 00:00:00.000 

我要去猜測tarih存儲爲一個字符串或者你沒有任何匹配的行。

如果tarih是基於字符列然後將查詢會做一個比較,詞典,查找行,其中的範圍到底是按字母順序排列的範圍開始前tarih >= '31.01.2011 ' and 'tarih <= ' 04.02.2011'沒有行可以匹配這個條件。