Sql 将varchar YYYYMMDD转换为datetime以与GETDATE()进行比较
我做错了什么?我看过其他的帖子,但我得到的结果与其他人不同 尝试将varchar YYYYMMDD转换为datetime,我不断得到: Msg 8115,16级,状态2,第2行 将表达式转换为数据类型datetime时出现算术溢出错误 尝试:Sql 将varchar YYYYMMDD转换为datetime以与GETDATE()进行比较,sql,sql-server,date,datetime,Sql,Sql Server,Date,Datetime,我做错了什么?我看过其他的帖子,但我得到的结果与其他人不同 尝试将varchar YYYYMMDD转换为datetime,我不断得到: Msg 8115,16级,状态2,第2行 将表达式转换为数据类型datetime时出现算术溢出错误 尝试: CONVERT(DATETIME, EXPDATE) CONVERT(DATETIME, EXPDATE, 102) (CONVERT(DATETIME, CAST(EXPDATE AS CHAR(8)), 112)) CONVERT(DATETIME,
CONVERT(DATETIME, EXPDATE)
CONVERT(DATETIME, EXPDATE, 102)
(CONVERT(DATETIME, CAST(EXPDATE AS CHAR(8)), 112))
CONVERT(DATETIME, CAST(expdate AS VARCHAR(8)))
我在这里搞砸了吗?您显然有一个无效日期的值 在SQL Server 2012+中,我建议
尝试转换()
:
然后,查看NULL
的值,查看数据问题可能在哪里
在早期版本中,您应该能够使用isdate()
:
很明显,您的值不是有效日期 在SQL Server 2012+中,我建议
尝试转换()
:
然后,查看NULL
的值,查看数据问题可能在哪里
在早期版本中,您应该能够使用isdate()
:
在我使用的表中有一个格式类似的日期字段(DateKey)。我使用以下语法将其转换为DATETIME:
SELECT CAST(CAST(DateKey AS VARCHAR(10)) AS DATETIME) FROM tblDate
这对您有用吗?我使用的表中有一个格式类似的日期字段(DateKey)。我使用以下语法将其转换为DATETIME:
SELECT CAST(CAST(DateKey AS VARCHAR(10)) AS DATETIME) FROM tblDate
这对你有用吗?太好了。Gordon和chancrovsky,你帮我清除了格式不正确的值。我使用了你发布的内容的一个版本,这很有效 (如果ISDATE(ExpDate)=1,则强制转换(ExpDate作为日期)否则为空 (完)截止日期
非常感谢你 太好了。Gordon和chancrovsky,你帮我清除了格式不正确的值。我使用了你发布的内容的一个版本,这很有效 (如果ISDATE(ExpDate)=1,则强制转换(ExpDate作为日期)否则为空 (完)截止日期
非常感谢你 日期值是多少?为什么不换成另一种方式进行比较?GETDATE()可以为您提供YYYY、MM和DD,将它们转换为varchar,连接它们并进行比较。日期值是多少?为什么不转换为其他方式进行比较?GETDATE()可以为您提供YYYY、MM和DD,将它们转换为varchar,连接它们并进行比较。
SELECT CAST(CAST(DateKey AS VARCHAR(10)) AS DATETIME) FROM tblDate