You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中如何获取上一小时的整时段记录?

获取上一个完整小时的时间范围查询

要获取上一个完整自然小时的时间段(比如13:00-14:00之间任意时间执行,都返回12:00-13:00的范围),关键是先把当前时间截断到小时整点,再计算起始和结束时间,而不是直接减1小时。

PostgreSQL 实现

使用date_trunc函数截断时间到小时级别,再计算上一小时的范围:

SELECT
  date_trunc('hour', CURRENT_TIMESTAMP) - interval '1 hour' AS Starttime,
  date_trunc('hour', CURRENT_TIMESTAMP) AS Endtime;

逻辑说明

  • date_trunc('hour', CURRENT_TIMESTAMP):将当前时间(比如2023-08-17 14:36:39.912 +0530)截断到最近的小时整点,得到2023-08-17 14:00:00.000 +0530
  • 减去1小时后得到上一小时的起始时间,截断后的整点就是当前小时的起始,也就是上一小时的结束时间

执行后返回结果示例:

Starttime                       Endtime
2023-08-17 12:00:00.000 +0530   2023-08-17 13:00:00.000 +0530

MySQL 实现

如果使用MySQL,可以用DATE_FORMAT函数格式化到小时整点:

SELECT
  DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00') - INTERVAL 1 HOUR AS Starttime,
  DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00') AS Endtime;

内容的提问来源于stack exchange,提问作者Maverick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 03:55:54