如何在查询中对日期执行操作?

Posted

技术标签:

【中文标题】如何在查询中对日期执行操作?【英文标题】:How to perform operations on dates in queries? 【发布时间】:2013-11-20 13:25:14 【问题描述】:

我想为查询中的字段添加 100 天:

SELECT DATE_ADD("date" + INTERVAL '100' DAY) FROM "history";

或其他...但它不适用于默认的 HSQLDB 前端...

有什么解决方法吗?

【问题讨论】:

我使用的是 LibreOffice V 4.1.2.3,可能因为一个错误我不能这样做。 “日期”的字段类型为 DATE。它必须是 TIMESTAMP 还是 DATETIME ? 嗯,对于低于 2.x 的 HSQLDB 版本显然不可能 【参考方案1】:

您不需要 date_add(),只需将间隔添加到列中即可:

SELECT "date" + INTERVAL '100' DAY
FROM "history";

【讨论】:

@BogeyJammer:显然你使用的是过时的 HSQLDB 版本 对……我刚刚检查了嵌入在 LibO 4.1 中的版本:v1.8。伤心……【参考方案2】:

OpenOffic 和 LO 中的默认 HSQLDB 版本是 1.8。不支持此功能。

HSQLDB 2.x 版支持多种日期/时间算术函数和表达式。

如果列名为“日期”,也支持这种形式。注意函数名中没有下划线:

SELECT DATEADD('day',100, "date") FROM "history";

【讨论】:

使用过时的 HSQLDB……抱歉……

以上是关于如何在查询中对日期执行操作?的主要内容,如果未能解决你的问题,请参考以下文章

请求有关如何在一个查询中对多个条件的计数进行分组的帮助

如何在java中对另一个选择查询的结果集执行选择查询

如何在 EF 查询中执行日期比较?

如何在 Rails 中对 AREL 中的子查询进行连接

如何在 Diesel 中对 Postgres 数据库执行删除子查询?

如何在Solr中对日期字段进行排序?