Sql server 将表达式转换为数据类型datetime(Int64转换为datetime)时出现算术溢出错误

Sql server 将表达式转换为数据类型datetime(Int64转换为datetime)时出现算术溢出错误,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,尝试 选择转换(日期时间,201208251426161616161120)作为时间 遇到异常 将表达式转换为数据类型datetime时出现算术溢出错误 值“20120825142616”的类型为“Int64”,作为参数传递给.Net SqlCommand对象 非常感谢您的帮助如果您将数据放在单引号中,则不会出现算术流错误 SELECT convert(datetime, '20120825142616' , 120) AS [time] 但您将得到一个错误: 从字符串转换日期和/或时间时,转

尝试

选择转换(日期时间,201208251426161616161120)作为时间

遇到异常

将表达式转换为数据类型datetime时出现算术溢出错误

值“20120825142616”的类型为“Int64”,作为参数传递给.Net SqlCommand对象


非常感谢您的帮助

如果您将数据放在单引号中,则不会出现算术流错误

SELECT convert(datetime, '20120825142616' , 120) AS [time]
但您将得到一个错误:

从字符串转换日期和/或时间时,
转换失败。

我觉得格式不对。如果我只确定日期,它就行了。像

SELECT convert(datetime, '20120825' , 120) AS [time]
-- output
2012-08-25 00:00:00.000
如果我用这种格式写日期,它就行了

SELECT convert(datetime, '2012-08-25 14:26:16' , 120) AS [time]
-- output
2012-08-25 14:26:16.000
这提供了类似的细节