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

t40tm48m  于 2021-07-27  发布在  Java
关注(0)|答案(2)|浏览(296)

我正在尝试将包含十进制值(例如20200721)的列fc\u from\u 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之间
非常感谢您的帮助!

w3nuxt5m

w3nuxt5m1#

如果您使用的是oracle,则可以使用以下查询:

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

zbdgwd5y2#

因为持久化格式是 YYYYMMDD 可以将值转换为 varchar(8) 然后使用 CONVERT 得到一个 Date 示例。

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

理想情况下,日期存储为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。

相关问题