【发布时间】:2014-04-14 15:24:24
【问题描述】:
我正在尝试运行 SQL 查询,但出现错误
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
代码:
SELECT
ClientId,
DatePassed,
Lender
FROM
dbo.tbl_Profile_Mortgage
WHERE
DatePassed = '2011-04-28 00:00:00.000'
我已经把数据类型转换成这样了
SELECT
ClientId,
Convert (Date, DatePassed)
Lender
FROM
dbo.tbl_Profile_Mortgage
WHERE
DatePassed = '2011-04-28 00:00:00.000'
但这仍然给我同样的错误
列DatePassed 的类型为datetime null
任何建议将不胜感激
【问题讨论】:
-
您的毫秒数可能有问题。另外,在您的查询中执行
date =并不是很有效。通常你会想做一个范围,比如午夜和午夜之间。 -
嘿 Paqogomez 我已经尝试了 WHERE DatePassed Between '2011-04-28 00:00:00.000' and '2011-04-28 23:59:59.000' 我仍然收到错误
-
毫秒呢?
-
当你只做
Between '2011-04-28 and '2011-04-29'时会发生什么?默认情况下,这将为您提供 24 小时的范围。您可能还会遇到yyyy-mm-dd的问题。请改用mm-dd-yyyy。 -
Paqogomez 当我执行 between 语句时,我收到与以前相同的错误。我已经尝试过似乎可以工作的 dd-mm-yyyy 但是没有带回任何数据
标签: sql sql-server datetime