在 Netezza 中将数字时间值转换为字符串

Posted

技术标签:

【中文标题】在 Netezza 中将数字时间值转换为字符串【英文标题】:Convert numeric time value to string in Netezza 【发布时间】:2014-07-30 02:52:29 【问题描述】:

我正在尝试将日期键和时间键(均为数字)转换为 Netezza 中 yyyy-mm-dd hh:mm:ss 格式的时间戳

例如date_key=20120711 time_key=61946 应转换为'2012-07-11 06:19:46'

我试过to_date函数

to_date(date_key||to_char(time_key,'099999'),'yyyymmdd hh24miss'). 

该函数在 Oracle 中有效,但在 Netezza 中失败,仅生成日期结果:对于上面的示例,“2012-07-11 00:00:00”。 Netezza 有什么用?谢谢。

【问题讨论】:

【参考方案1】:

该逻辑在Netezza 中有效,但您需要调用to_timestamp 函数来包含时间。

select test.datekey
, to_timestamp( test.datekey||trim(to_char(test.timekey,'099999')),'YYYYMMDDHH24MISS')
, to_timestamp( test.datekey||to_char(test.timekey,'099999'),'YYYYMMDD HH24MISS')
from (select cast(20120711 as integer) as datekey, cast(61946 as integer) as timekey ) as test

【讨论】:

值得注意的是,Oracle 所指的 DATE 实际上在内部存储为我们认为的 TIMESTAMP,这就是 to_date 函数在 Oracle 中工作的原因。

以上是关于在 Netezza 中将数字时间值转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 LogQL 中将字符串值转换为数字?

如何在 Netezza 中将整数字段转换为日期?

如何在freemarker模板中将字符串转换为数字

在pyspark中将字符串价格值转换为double类型

JavaScript中将字符串类型转换为整形的函数

如何在 C++ 中将字符串转换为双精度值?