1

我正在查询的数据库有一个用户表,其中有一列包含用户注册网站的日期。

将日期输入到 varchar 列中,但没有正确的日期格式,如下所示:

Apr 18 2013 12:27PM

当我SELECT MAX (dateColumn)在日期范围内获得大约一半的值时。我考虑过使用子字符串来获取年份,然后是月份,然后是日期并按顺序排列它们。问题是日期以 0 开头的日期将缩短一个字符,如下所示:

May 1 2013 12:27PM

有没有一种简单的方法可以在不改变数据库结构的情况下找到最高日期?

4

3 回答 3

2

尝试select max(convert(datetime, dateColumn, 109))

有关在 SQLServer 中的数据类型(包括日期格式)之间进行转换的更多信息,请点击此处

于 2013-04-25T10:25:42.447 回答
0

将列转换为“YYYYMMDD”格式的值,然后对该列进行排序。

于 2013-04-25T10:10:58.327 回答
0

尝试将 varchar 转换为日期时间格式并执行。您应该以相同的格式保存日期。它只是将 varchar 转换为日期时间的示例。

Select * from tblName 
    where Convert(datetime, Convert(varchar(12),DOJ,106)) as DOJ >=
          Convert(datetime, Convert(varchar(12),'2013-04-28',106))
于 2013-04-25T10:12:22.217 回答