Dan*_*iel 31 sql datetime integer casting
我正在尝试将日期转换为日期时间但是我遇到了错误.我转换的数据类型是(float,null),我想将它转换为DATETIME.
这段代码的第一行工作正常,但我在第二行得到了这个错误:
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),
Run Code Online (Sandbox Code Playgroud)
SQL*_*ace 43
您需要先转换为char,因为转换为int会将这些天数添加到1900-01-01
select CONVERT (datetime,convert(char(8),rnwl_efctv_dt ))
Run Code Online (Sandbox Code Playgroud)
这里有些例子
select CONVERT (datetime,5)
Run Code Online (Sandbox Code Playgroud)
1900-01-06 00:00:00.000
select CONVERT (datetime,20100101)
Run Code Online (Sandbox Code Playgroud)
爆炸,因为你无法在1900-01-01添加20100101天......你超过了限制
首先转换为char
declare @i int
select @i = 20100101
select CONVERT (datetime,convert(char(8),@i))
Run Code Online (Sandbox Code Playgroud)
尝试这个:
select CONVERT(datetime, convert(varchar(10), 20120103))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
273802 次 |
最近记录: |