我需要从MSSQL数据库中选择一个日期范围,但是s.ended字段尚未设置为日期时间字段 . 它已设置为varchar,存储日期的格式为 d/m/Y
.
我已经尝试了下面的条款,但我收到以下错误消息 . 有没有人知道如何在不改变数据库设计的情况下解决这个问题?
Where子句:
WHERE
(S.ended > CONVERT(DateTime, '28/07/2012 00:00:01', 103))
AND (S.ended < CONVERT(DateTime, '28/08/2012 00:00:01', 103))
错误信息:
将varchar数据类型转换为日期时间数据类型会导致超出范围值 .
3 回答
试试这个:
在与
Datetime
值进行比较之前,S.ended
可能没有采用正确的格式 .所以首先将该值转换为Datetime然后进行比较 .
也许将日期更改为美国风格的日期而不是 '28/07/2012 00:00:01' 试试 '07/28/2012 00:00:01'