繁体   English   中英

如何调整 Snowflake function 以获取无法解析的错误日期?

[英]How can I adjust the Snowflake function to get date with error that it cannot parse?

我正在尝试将这种格式的数字1180106转换为日期。

直到今天,我一直能够运行以下查询以获取 YYYYMMDD 格式:

TO_DATE(1900 + LEFT(A.ODT_ENTERED_DATE, 3) || SUBSTR(A.ODT_ENTERED_DATE, 4, 4), 'YYYYMMDD')

内部查询构建了一个这样的数字: 2018.000000106但是 TO_DATE function 无法从中创建日期。 我期待20180106

相反,我收到以下错误:

Can't parse '2018.000000106' as date with format 'YYYYMMDD'

如果你只是运行:

select 1900 + LEFT(A.ODT_ENTERED_DATE, 3) 

这将结果作为varchar返回,其中返回的结果是: 2018.00000

通过以下任一方式转换为数字应该会给您预期的结果:

select TO_DATE(1900 + TO_NUMBER(LEFT(1180106, 3))|| SUBSTR(1180106, 4, 4), 'YYYYMMDD')

或者

SELECT TO_DATE((1900 + (LEFT(1180106, 3))) :: number || SUBSTR(1180106, 4, 4), 'YYYYMMDD')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM