【问题标题】:TO_CHAR and SSSS (hours past midnight)TO_CHAR 和 SSSS(午夜过后的几个小时)
【发布时间】:2020-09-25 19:35:18
【问题描述】:

在将一些代码从 Netezza 转换为 Snowflake 时,我遇到了 Snowflake 中似乎存在的漏洞。

格式为:

TO_CHAR(,'SSSS')

SSSS 参数定义为午夜后的秒数。

https://www.ibm.com/support/knowledgecenter/SSULQD_7.2.1/com.ibm.nz.dbu.doc/r_dbuser_ntz_sql_extns_templ_patterns_date_time_conv.html

Snowflake 无法提取低于第二级的时间,例如毫秒、微秒、纳秒。

我错过了什么吗?其他选择?

【问题讨论】:

  • 您能否以示例代码(包括输入数据)和您的期望为例?

标签: snowflake-cloud-data-platform netezza to-char


【解决方案1】:

有趣的是,这个问题要求亚秒级时间范围,但引用了一个仅在 Netezza 秒级返回的函数。所以,我不确定您到底在寻找什么,但我相信这是您可以使用 Snowflake 的地方,以 current_timestamp() 为例:

SET timecheck = current_timestamp();

SELECT DATEDIFF(s,date_trunc(day,$timecheck),$timecheck);

这将返回自午夜以来的时间(以秒为单位)。

SELECT DATEDIFF(ms,date_trunc(day,$timecheck),$timecheck);

这将返回自午夜以来的时间(以毫秒为单位)。

如果您想在代码中使调用更加简洁,也可以轻松地将其变成一个函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 2011-12-26
    相关资源
    最近更新 更多