我的表的日期列是VARCHAR而不是datetime。SELECT varchar列的最短日期
如
entry
'03/01/2011'
'03/22/2011'
'05/22/2010'
當我做了
SELECT min(entry) FROM table
我會得到'03/01/2011' ,因爲它是最小的字母順序。我想檢索'05/22/2010',而不是最短的日期。如何將列轉換爲日期時間並獲取最小值。
感謝
我的表的日期列是VARCHAR而不是datetime。SELECT varchar列的最短日期
如
entry
'03/01/2011'
'03/22/2011'
'05/22/2010'
當我做了
SELECT min(entry) FROM table
我會得到'03/01/2011' ,因爲它是最小的字母順序。我想檢索'05/22/2010',而不是最短的日期。如何將列轉換爲日期時間並獲取最小值。
感謝
假設所有條目都是 '澆注料' 爲datetime
:
SELECT MIN(CAST(entry as datetime))
FROM table
假設可能有一些情況下,entry
心不是一個datetime
:
SELECT MIN(CAST(ISNULL(NULLIF(ISDATE([entry]),0),'31/12/9999') as datetime))
FROM table
如果所有記錄的日期列,如@Steve倫斯建議,我將在datetype更改爲datetime
場,以節省未來的問題
讓你varchar
一個date
(或datetime
)使用,當然CAST
or CONVERT
。
嘗試CAST
它。
SELECT min(CAST(entry AS DATETIME)) FROM table
希望這會有所幫助。
儘管給出的答案,這將工作 - 這就是爲什麼你不把日期存儲在一個varchar列! – Jamiec