sql-server – 将表达式转换为数据类型datetime的算术溢出错误.
发布时间:2020-12-12 16:19:21 所属栏目:MsSql教程 来源:网络整理
导读:执行跟随错误时显示 declare @yr_mnth_dt as numeric;set @yr_mnth_dt = 20130822;select convert(datetime,@yr_mnth_dt,112) as YR_MNTH_DT 错误显示 Arithmetic overflow error converting expression to data type datetime. 解决方法 你发现的是你试图将
执行跟随错误时显示
declare @yr_mnth_dt as numeric; set @yr_mnth_dt = 20130822; select convert(datetime,@yr_mnth_dt,112) as YR_MNTH_DT 错误显示 Arithmetic overflow error converting expression to data type datetime. 解决方法你发现的是你试图将数字转换为日期时间,而这只是不起作用.您需要先将数字转换为字符串: declare @yr_mnth_dt as numeric; set @yr_mnth_dt = 20130822; select yr_mnth_dt = cast(cast(@yr_mnth_dt as char(8)) as datetime); SQL Fiddle with demo. 当您尝试将数字类型转换为日期时间时,SQL Server会尝试将数值添加为日期01-Jan-1900的天数.在你的情况下,这是试图增加数百万天,因此溢出错误. 如果您愿意,CONVERT也可以正常工作: select yr_mnth_dt = convert(datetime,convert(char(8),@yr_mnth_dt)); SQL Fiddle with demo. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |