这个 SQL 查询有啥问题[重复]
Posted
技术标签:
【中文标题】这个 SQL 查询有啥问题[重复]【英文标题】:What is wrong with this SQL Query [duplicate]这个 SQL 查询有什么问题[重复] 【发布时间】:2016-04-29 09:52:28 【问题描述】:我正在清理数据库,但出现此错误。我要删除不到 6 个月的数据。
查询:
Delete from dbo.Jobs
where dtpDate <= '2016-04-27 15:23:00.000'
错误:
消息 242,第 16 级,状态 3,第 1 行 将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
类型是日期时间
【问题讨论】:
dtpDate
的类型是什么?
dba.stackexchange.com/questions/86313/…检查这个问题
为了让我们正确回答您的问题,我们需要知道 dtpDate 的格式,所以请回显一两个 dtpDate 类型的日期,以便我们比较格式。跨度>
【参考方案1】:
尝试向查询添加强制转换。
CAST( '2016-04-27 15:23:00.000' AS DATETIME)
【讨论】:
【参考方案2】:您的服务器可能具有与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)
【讨论】:
【参考方案3】:DELETE FROM dbo.Jobs
WHERE dtpDate <= CAST('2016-04-27 15:23:00.000' AS DATETIME)
【讨论】:
以上是关于这个 SQL 查询有啥问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章