Netezza 日期功能无法正常工作

Posted

技术标签:

【中文标题】Netezza 日期功能无法正常工作【英文标题】:Netezza date function not working properly 【发布时间】:2015-12-08 16:51:09 【问题描述】:

为什么这两个都返回 0?

从 _v_dual 中选择 EXTRACT (DAY FROM date('08DEC2015') - current_timestamp)

从 _v_dual 中选择 EXTRACT (DAY FROM date('09DEC2015') - current_timestamp)

今天是 2015 年 12 月 8 日,美国东部标准时间上午 11:50,我写这篇文章。

【问题讨论】:

【参考方案1】:

DATE 函数运行良好。 DAY 的 EXTRACT 返回零,因为在这两种情况下,当您从硬编码的日期函数中减去 current_timestamp 时返回的间隔都小于一天。

TESTDB.ADMIN(ADMIN)=> select date('08DEC2015') - current_timestamp;
 ?COLUMN?
-----------
 -15:30:12
(1 row)

TESTDB.ADMIN(ADMIN)=> select date('09DEC2015') - current_timestamp;
 ?COLUMN?
----------
 08:29:42
(1 row)

如果您的时间间隔大于 24 小时,那么您将从表达式中提取一个非零 DAY 值。顺便说一句,请注意“from _v_dual”对于 Netezza 中的 SELECT 来说是不必要的。

TESTDB.ADMIN(ADMIN)=> select date('10DEC2015') - current_timestamp;
    ?COLUMN?
----------------
 1 day 08:26:11
(1 row)

TESTDB.ADMIN(ADMIN)=> select EXTRACT (DAY FROM date('10DEC2015') - current_timestamp);
 DATE_PART
-----------
         1
(1 row)

【讨论】:

太棒了。感谢 _v_dual 提示。仍然停留在我以前的 ORACLE 习惯中。

以上是关于Netezza 日期功能无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

在 netezza 中获取工作日的名称

确定 netezza 中行的加载日期

在 netezza 中将日期转换为整数

如何在netezza中制作时间维度?

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

Netezza 中最强大的功能