2013-05-14 57 views
3

我有一個數據庫,其中我看到日期以字符串形式存儲。我可以在查詢中比較這些日期(以字符串的形式)嗎?存儲在字符串中的SQL Server CE日期:如何比較

例如,列date1商店09-11-1992 00:00:00date222-11-1992 00:00:00

難道是明智的執行查詢語句如下:

select * from tablename WHERE date1 > "06-11-1992 00:00:00"; 

回答

2

如果你的字符串是識別的格式,你應該能夠cast他們日期時間和比較。

select * 
from tablename 
where cast(date1 as datetime) > cast('06-11-1992 00:00:00' as datetime) 

但是,我建議使用ISO 8601日期格式。這裏有一個可能性:

cast('1992-11-06T00:00:00' as datetime) 

我在這裏假設,因爲你date2例如DD-MM-YYYY。

只要確定你知道哪一天是哪一天,哪一天是月份。希望你的字符串總是相同的格式,並符合你的區域設置。

注意:您可能需要set the date format充分利用您的數據輸出正確的:

set dateformat dmy 
select cast('06-11-1992 00:00:00' as datetime) -- returns 1992-11-06 00:00:00 
set dateformat mdy 
select cast('06-11-1992 00:00:00' as datetime) -- returns 1992-06-11 00:00:00