0

尝试在 sql server 中将 varchar 转换为 datetime 时出现以下错误。

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

以下是 ResponseDate 列值:

2012-06-19 10:30:36.157
2012-06-19 10:30:36.157
2012-07-09 11:37:14.287
2012-06-21 10:15:06.733
2012-07-02 13:19:13.080

我正在尝试编写一个在 7 月选择 * 的查询。

  Select * From table WHERE CONVERT(datetime,ResponseDate)  BETWEEN '20120631' AND '20120801'

我认为不会有任何问题,因为 varchar 已经是日期时间格式。

谁能给我建议?谢谢!

4

1 回答 1

2

尝试使用以下修改后的语句。我认为问题在于它试图将 WHERE 子句中的字符串隐式转换为 DateTime ,但它们的格式不是可以的。

Select * From table 
WHERE 
CONVERT(datetime,ResponseDate)  BETWEEN '6/30/2012' AND '8/1/2012'
于 2012-08-06T17:18:11.967 回答