小编Jos*_*per的帖子

比较存储为 varchar 的日期

我需要将数据库中存储为 varchar 的日期与今天的日期进行比较。

具体来说,我需要排除任何日期已过的记录。

我试过:

SELECT * FROM tblServiceUsersSchedule 
WHERE ScheduleEndDate !='' AND ScheduleEndDate < '2015/05/31'
Run Code Online (Sandbox Code Playgroud)

此选择的值例如 17/06/ 2012和 19/04/2015 都已通过,以及 01/06/2015 尚未通过。

然后我尝试使用以下方法转换数据:

SELECT * 
FROM   tblServiceUsersSchedule 
WHERE  CAST(ScheduleEndDate as DATETIME)  < CAST('05/31/2015' as DATETIME) AND ScheduleEndDate !='' AND ScheduleEndDate is not null
Run Code Online (Sandbox Code Playgroud)

但出现以下错误:

varchar 数据类型到 datetime 数据类型的转换导致值超出范围。

我检查了后面的数据,没有一个是空的,没有一个是空白。所有日期均采用 dd/mm/yyyy 格式。

我不知道如何将存储的 varchar 日期与今天的日期进行比较。

sql-server datetime date

1
推荐指数
1
解决办法
3万
查看次数

标签 统计

date ×1

datetime ×1

sql-server ×1