将十进制转换为日期格式SQL



我正在尝试将包含十进制值(例如20200721(的列FC_FROM_DATE转换为日期格式2020/07/21。

我试过这个代码

SELECT TO_DATE(CHAR(CAST(FC_FROM_DATE AS DECIMAL(8,0))), 'YYYY/MM/DD') 
FROM MARKETS.FORECAST

我收到一个错误

chr的参数应介于0和127 之间

非常感谢您的帮助!

如果您正在使用Oracle,则可以使用以下查询:

SELECT TO_DATE(CAST(FC_FROM_DATE AS VARCHAR(8), 'YYYY/MM/DD') FROM Table

由于持久化格式是YYYYMMDD,您可以将值转换为varchar(8),然后使用CONVERT来获得Date实例。

SELECT CONVERT(DATE, CAST(FC_FROM_DATE AS VARCHAR(8))) FROM MARKETS.FORECAST

理想情况下,日期存储为Date,带有时间组件的Date存储为DATETIME2(如果不是Sql Server,则为等效值(。

测试上述代码

DECLARE @FC_FROM_DATE decimal(8,0) =  20200721
SELECT CONVERT(DATE, CAST(@FC_FROM_DATE AS VARCHAR(8)))

2020-07-21

免责声明:这适用于MS Sql Server

相关内容

  • 没有找到相关文章

最新更新