我已經在sql server 2005中保存日期爲VARCHAR 2005 現在我想選擇2013年之前的所有日期,但我不能。SQL 2005比較保存爲VARCHAR的日期
WDATE 09/01/2012 2012年8月13日
我想這些日期與任何其他日期比較 我使用此查詢:
SELECT * FROM Work_Order
WHERE WDATE < '09/02/2012'
但減去天那麼個月那麼這些年並非我的情況
我已經在sql server 2005中保存日期爲VARCHAR 2005 現在我想選擇2013年之前的所有日期,但我不能。SQL 2005比較保存爲VARCHAR的日期
WDATE 09/01/2012 2012年8月13日
我想這些日期與任何其他日期比較 我使用此查詢:
SELECT * FROM Work_Order
WHERE WDATE < '09/02/2012'
但減去天那麼個月那麼這些年並非我的情況
如果您的專欄定義爲VARCHAR
,那麼看到您的更新問題,您無法做到您想要的內容(在某日期之前選擇記錄)。你需要把它存儲爲DATETIME
值或將其丟,也許是這樣的:
SELECT *
FROM Work_Order
WHERE CAST(WDATE as DATETIME) < CAST('09/02/2012' as DATETIME)
我沒有SQL SERVER 2005我自己,所以,語法只是一個猜測。
語法應該很好,這種方法的問題在於它對文化敏感,例如在美國,它將使用MM/DD/YYYY並在英國DD/MM/YYYY左右...... – Lucero
是的;右邊的確應該是一個常量(並且不使用CAST),但我不知道正確的SQL Server 2005語法。隨意編輯答案! – BellevueBob
感謝它在2008 r2上爲我工作,將與2005年一起嘗試 –
你使用了什麼日期格式? – Guffa
其中cast varchar至date列<= 1/1/2011 –
您需要發佈您嘗試過的代碼或轉換表達式,以便人們可以爲您提供幫助。 –