本文介绍了将INT转换为DATETIME(SQL)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将日期转换为datetime,但会收到错误。我要转换的数据类型是(float,null),我想将它转换为DATETIME。
I am trying to convert a date to datetime but am getting errors. The datatype I'm converting from is (float,null) and I'd like to convert it to DATETIME.
这段代码的第一行工作正常,但我在第二行获得此错误:
The first line of this code works fine, but I get this error on the second line:
Arithmetic overflow error converting expression to data type datetime. CAST(CAST( rnwl_efctv_dt AS INT) AS char(8)), CAST(CAST( rnwl_efctv_dt AS INT) AS DATETIME),推荐答案
您需要转换为char第一,因为转换为int添加那些天到1900-01 -01
you need to convert to char first because converting to int adds those days to 1900-01-01
select CONVERT (datetime,convert(char(8),rnwl_efctv_dt ))这里有一些例子
select CONVERT (datetime,5)1900-01-06 00:00:00.000
1900-01-06 00:00:00.000
select CONVERT (datetime,20100101)$ b b
炸开,因为您无法将20100101天添加到1900-01-01..you超过限制
blows up, because you can't add 20100101 days to 1900-01-01..you go above the limit
转换为char first
convert to char first
declare @i int select @i = 20100101 select CONVERT (datetime,convert(char(8),@i))更多推荐
将INT转换为DATETIME(SQL)
发布评论