在 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 中将数字时间值转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章