在SQLServer中将字符串转换为日期,算术溢出
我想将此表单中的字符串“在SQLServer中将字符串转换为日期,算术溢出,sql,sql-server,Sql,Sql Server,我想将此表单中的字符串“PERIOD”yyyymmdd(例如:20120701)转换为SQLServer中的日期。 所以我使用了如下转换函数: CONVERT(DATETIME,PERIOD,102); 及 但是我有一个 SqlException:“将表达式转换为时出现算术溢出错误” 数据类型datetime。“ 这就是整个问题,还有其他错误吗 正确的方法是什么?既然是yyyymmdd,您需要 CONVERT(DATETIME, PERIOD, 112) 退房因为是yyyymmdd,您需要
PERIOD
”yyyymmdd
(例如:20120701)转换为SQLServer中的日期。
所以我使用了如下转换函数:
CONVERT(DATETIME,PERIOD,102);
及
但是我有一个
SqlException:“将表达式转换为时出现算术溢出错误”
数据类型datetime。“
这就是整个问题,还有其他错误吗
正确的方法是什么?既然是yyyymmdd,您需要
CONVERT(DATETIME, PERIOD, 112)
退房因为是yyyymmdd,您需要
CONVERT(DATETIME, PERIOD, 112)
签出如果是日期格式问题,您将得到一个超出范围的错误,因为您得到一个溢出错误,请检查您没有使用整数
CONVERT(DATETIME, 20120701, 102) - overflow
CONVERT(DATETIME,'20120701',102) - ok
如果它是一个日期格式问题,你会得到一个超出范围的错误,因为你得到一个溢出错误检查你没有使用整数
CONVERT(DATETIME, 20120701, 102) - overflow
CONVERT(DATETIME,'20120701',102) - ok
这将以日期格式转换给定的期间
declare @dt varchar(100)='20120701'
select convert(datetime,@dt)
这将以日期格式转换给定的时间段。先生,问题仍然存在,我已对问题进行了编辑,以包含整个查询。。谢谢..先生,问题仍然存在,我已经编辑了问题以包含整个查询。。谢谢..谢谢先生!这确实是问题所在,不是vchar。当数据类型更改为vchar时,问题得到解决。谢谢,先生!这确实是问题所在,不是vchar。当数据类型更改为vchar时,问题得到了解决。
declare @dt varchar(100)='20120701'
select convert(datetime,@dt)