这个SQL查询有什么问题

时间:2016-04-29 09:52:28

标签: sql sql-server

我正在清理数据库,但是我收到了这个错误。我要删除不到6个月的数据。

查询:

Delete from dbo.Jobs 
where dtpDate <= '2016-04-27 15:23:00.000' 

错误:

  

Msg 242,Level 16,State 3,Line 1
  将varchar数据类型转换为日期时间数据类型会导致超出范围的值。

类型是日期时间

3 个答案:

答案 0 :(得分:0)

DELETE FROM dbo.Jobs 
      WHERE dtpDate <= CAST('2016-04-27 15:23:00.000' AS DATETIME)

答案 1 :(得分:0)

尝试在查询中添加强制转换。

CAST( '2016-04-27 15:23:00.000' AS DATETIME)

答案 2 :(得分:0)

您的服务器可能具有与yyyy-mm-dd不兼容的日期格式设置。您可以尝试使用与ODBC区域设置无关的转义序列来强制执行该格式,例如

delete from dbo.Jobs where dtpDate <= {ts'2016-04-27 15:23:00.000'}

或ODBC强制转换格式,例如

delete from dbo.Jobs where dtpDate <= convert(datetime, '2016-04-27 15:23:00.000', 120)