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

如何在H2数据库中获取当前时间戳减2个月后当月第一天的无时间部分值

在H2数据库中获取指定时间戳减2个月后的当月第一天(含00:00:00)

Got it!在H2数据库里实现这个需求其实很简单,我们只需要组合两个内置的日期函数就能精准得到你要的结果:

核心思路

  • 第一步:用DATEADD函数将目标时间戳减去2个月,参数指定为'MONTH'和偏移量-2;
  • 第二步:用TRUNCATE函数将偏移后的日期截断到当月第一天,指定截断级别为'MONTH',这会自动把时间部分重置为00:00:00。

具体SQL语句

如果是基于当前系统时间戳计算:

TRUNCATE(DATEADD('MONTH', -2, CURRENT_TIMESTAMP()), 'MONTH')

如果是针对数据表中的某个时间字段(比如名为event_time的字段),替换成字段名即可:

TRUNCATE(DATEADD('MONTH', -2, event_time), 'MONTH')

示例验证

拿你给出的例子来说:

输入时间:2020-03-09 13:46:55
期望结果:2020-01-01 00:00:00

执行过程:

  1. DATEADD('MONTH', -2, '2020-03-09 13:46:55') → 得到 2020-01-09 13:46:55;
  2. TRUNCATE('2020-01-09 13:46:55', 'MONTH') → 最终得到 2020-01-01 00:00:00,完全匹配你的需求。

额外小技巧

如果你只需要纯日期格式(不带00:00:00的时间部分),可以用DATE()函数包裹结果:

DATE(TRUNCATE(DATEADD('MONTH', -2, event_time), 'MONTH'))

这样返回的结果就是2020-01-01。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:22:35