Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将varchar YYYYMMDD转换为datetime以与GETDATE()进行比较_Sql_Sql Server_Date_Datetime - Fatal编程技术网

Sql 将varchar YYYYMMDD转换为datetime以与GETDATE()进行比较

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,

我做错了什么?我看过其他的帖子,但我得到的结果与其他人不同

尝试将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, 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