我的表的日期列是VARCHAR而不是datetime.
例如
entry
'03/01/2011'
'03/22/2011'
'05/22/2010'
Run Code Online (Sandbox Code Playgroud)
当我做的时候
SELECT min(entry) FROM table
Run Code Online (Sandbox Code Playgroud)
我会得到'03/01/2011',因为它是字母顺序的分钟.我想要检索'05/22/2010'而不是最小日期.如何将列转换为datetime并获取最小值.
谢谢
假设所有条目都是"可投射的" datetime:
SELECT MIN(CAST(entry as datetime))
FROM table
Run Code Online (Sandbox Code Playgroud)
假设可能有一些情况下,entry心不是一个datetime:
SELECT MIN(CAST(ISNULL(NULLIF(ISDATE([entry]),0),'31/12/9999') as datetime))
FROM table
Run Code Online (Sandbox Code Playgroud)
如果所有记录都是日期列,正如@Steve Wellens建议的那样,我会将日期类型更改为datetime字段以保存未来的问题
| 归档时间: |
|
| 查看次数: |
3342 次 |
| 最近记录: |