如何更改雪花中归档日期的日期格式?

时间:2020-05-22 13:07:51

标签: format snowflake-cloud-data-platform

我正在寻找在雪花中将日期字段的值更改为以下格式:例如2/10 / 17、11 / 1 / 17、12 / 18/19到以下格式:20010408、20121226、20010304。

谢谢

4 个答案:

答案 0 :(得分:0)

您可以使用TO_DATE和TO_VARCHAR转换格式:

select to_varchar( to_date(v, 'MM/DD/YY'), 'YYYYMMDD' )
FROM VALUES ( '2/10/17' ) , ('11/1/17' ), ('12/18/19 ') tmp( v );

由于12/18/19,我假设您的日期格式为MM / DD / YY。

如果有要转换的空字符串,则可以使用IFF将其转换为空值:

select to_varchar( to_date( IFF(v <> '', v, NULL), 'MM/DD/YY'), 'YYYYMMDD' )
FROM VALUES ( '2/10/17' ) , ('11/1/17' ), ('12/18/19 '), ('') tmp( v );

这将返回以下内容:

+----------+
| NEW_DATE |
+----------+
| 20170210 |
| 20171101 |
| 20191218 |
| NULL     |
+----------+

答案 1 :(得分:0)

我将假设您的日期字段是一个字符串,因为这两种日期格式实际上都不是Snowflake存储日期的方式。但是要进行转换,您需要执行以下操作:

SELECT TO_VARCHAR(TO_DATE('2/10/17','MM/DD/YY),'YYYYMMDD');

答案 2 :(得分:0)

检查下面的URL以获取日期输出格式

https://docs.snowflake.com/en/user-guide/date-time-input-output.html

答案 3 :(得分:0)

我尝试使用相同的方法:

选择TO_VARCHAR(TO_DATE((RpEntTrDt),'MM / DD / YY'),'YYYYMMDD') 来自CONCUR

但我得到:无法将格式为'MM / DD / YY'的''解析为日期''