如何使用 postgresql/netezza 从日期时间中减去天数或月数

Posted

技术标签:

【中文标题】如何使用 postgresql/netezza 从日期时间中减去天数或月数【英文标题】:how to subtract days or months from datetime using postgresql/netezza 【发布时间】:2014-12-03 23:57:43 【问题描述】:

我有这个运行良好的 sql 查询,但想将其转换为某种 postgresql 或 netezza 等效查询。以下是我的疑问:

SELECT name, location, Date FROM myTable WHERE [Date] < DateAdd(hh, 48, [shipDate]

和其他查询

SELECT name, location, Date FROM myTable WHERE [Date] < DateAdd(d, 90, [shipDate]

【问题讨论】:

不要使用[括号]。它们是 Microsoft 扩展。 【参考方案1】:

对于 Netezza,最简单的做法是使用区间计算:

SELECT name, location, Date FROM myTable WHERE Date < shipDate + interval '48 hours';
SELECT name, location, Date FROM myTable WHERE Date < shipDate + interval '2 days';
SELECT name, location, Date FROM myTable WHERE Date < shipDate + interval '90 days';

如果您想根据月份的不同长度进行月份计算,也可以使用 add_months。

SELECT name, location, Date FROM myTable WHERE Date < add_months(shipdate, 3);

【讨论】:

PostgreSQL 中没有 add_months() 函数。 我将进行编辑以澄清我的回复是针对“Postgres 或 netezza”的 netezza 部分 一句警告:可以使用月份组件定义间隔,但您应该避免这样做,因为它会引入细微的日期数学错误。您还可以使用整数算术添加天数,但这又会引入细微的错误。始终使用 add_months 表示月和年的单位,以及天、小时、分钟和秒的间隔。 AFAICT 不支持毫秒日期数学。

以上是关于如何使用 postgresql/netezza 从日期时间中减去天数或月数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用颤振提供程序从 Firestore 获取数据?

如何使用 oauth 从用户那里获取详细信息? [关闭]

如何从命令行(使用 kotlinc)使用 kapt?

如何使用 SWIG 从 C 调用 C# 方法?

如何从 python 使用 mongolab 插件到 Heroku?

如何从 python 使用 mongolab 插件到 Heroku?