如何在 Oracle 的日期中添加一天的最后一小时?
Posted
技术标签:
【中文标题】如何在 Oracle 的日期中添加一天的最后一小时?【英文标题】:How to add last hour of a day in a Date in Oracle? 【发布时间】:2020-10-18 11:36:40 【问题描述】:我的日期字段中有一个日期,例如 2020 年 10 月 14 日。现在我想获取日期并添加小时、分钟和秒,该日期应该是该日期的最后一个小时,例如 10/14/2020 11:59:59 PM
【问题讨论】:
【参考方案1】:将日期值截断回午夜(以防万一存在非午夜时间分量),然后添加23:59:59
的间隔:
SELECT TRUNC( your_date_value ) + INTERVAL '23:59:59' HOUR TO SECOND
AS last_second_of_day
FROM your_table;
或加 1 天减 1 秒:
SELECT TRUNC( your_date_value ) + INTERVAL '1' DAY - INTERVAL '1' SECOND
AS last_second_of_day
FROM your_table;
或添加86399
秒:
SELECT TRUNC( your_date_value ) + INTERVAL '86399' SECOND
AS last_second_of_day
FROM your_table;
或
SELECT TRUNC( your_date_value ) + 86399 / 86400
AS last_second_of_day
FROM your_table;
(但是使用间隔更明确地说明它们的含义,而使用幻数可能在您查看 6 个月后的代码时不清楚。)
那么,对于样本数据:
CREATE TABLE your_table ( your_date_value ) AS
SELECT DATE '2020-10-14' FROM DUAL UNION ALL
SELECT DATE '2020-01-01' + INTERVAL '12' HOUR FROM DUAL;
查询全部输出:
| LAST_SECOND_OF_DAY | | :----------------- | | 2020-10-14 23:59:59 | | 2020-01-01 23:59:59 |
db小提琴here
【讨论】:
以上是关于如何在 Oracle 的日期中添加一天的最后一小时?的主要内容,如果未能解决你的问题,请参考以下文章