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

将十进制转换为日期格式SQL,sql,date,casting,decimal,to-date,Sql,Date,Casting,Decimal,To Date,我正在尝试将包含十进制值(例如20200721)的列FC_从_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

我正在尝试将包含十进制值(例如20200721)的列FC_从_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

如果您使用的是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,带有时间组件的日期存储为DATETIME2(如果不是Sql Server,则为等效日期)

以上代码的测试 2020-07-21


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

鉴于持久化格式为
YYYYMMDD
,您可以将值转换为
varchar(8)
,然后使用
convert
获取
Date
实例

SELECT CONVERT(DATE, CAST(FC_FROM_DATE AS VARCHAR(8))) FROM MARKETS.FORECAST
理想情况下,日期存储为Date,带有时间组件的日期存储为DATETIME2(如果不是Sql Server,则为等效日期)

以上代码的测试 2020-07-21



免责声明:这在MS Sql Server中有效。

这是Sql Server吗?源模式中的
FC\u FROM\u DATE
是varchar还是十进制?@Igor是的,它是Sql,我相信它是源模式中的十进制。请用正在运行的数据库标记您的问题:oracle、Sql Server、mysql…?@GMB我正在Exasol中使用Sql。我相信这是mysql这是Sql Server吗?
FC\u FROM\u DATE
varchar还是源模式中的十进制数?@Igor是的,它是Sql,我相信它是源模式中的十进制数请用您运行的数据库标记您的问题:oracle,Sql Server,mysql…?@GMB我在Exasol中使用Sql。我相信是MySQLI犯了这个错误:“数据异常-cast的字符值无效;值:“20200702”格式:“YYYY-MM-DD”在表达式cast(FORECAST.FC_FROM_DATE AS VARCHAR(8)UTF8)的cast中)非常感谢您的帮助。不过我还是遇到了一个错误,这对MySQL是如何工作的?
这对MySQL是如何工作的
← 我不知道@mromankim,这就是为什么我问你是否在使用Sql Server(微软称之为他们的产品),你回答“是”。你应该总是用你需要答案的RDBMS来标记你的问题,当你标记
sql
时,有一个工具提示也让你意识到了这一点。谢谢@Igor提供的线索。我是sql的新手,不知道会有什么不同。@mromankim更新您的问题并添加正确的MySQL标记,您需要社区中某个人的答案。我遇到了以下错误:“数据异常-无效的字符值用于强制转换;值:“20200702”格式:“YYYY-MM-DD”在表达式cast(FORECAST.FC_FROM_DATE AS VARCHAR(8)UTF8)的cast中)非常感谢您的帮助。不过我还是遇到了一个错误,这对MySQL是如何工作的?
这对MySQL是如何工作的
← 我不知道@mromankim,这就是为什么我问你是否在使用Sql Server(微软称之为他们的产品),你回答“是”。你应该总是用你需要答案的RDBMS来标记你的问题,当你标记
sql
时,有一个工具提示也让你意识到了这一点。谢谢@Igor提供的线索。我是sql的新手,不知道会有什么不同。@mromankim更新您的问题并添加正确的MySQL标记,您需要社区中某个人的答案。