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

PostgreSQL中如何让CURRENT_TIMESTAMP仅保留当前日期并固定时间为22:00?

实现当前日期固定22:00的时间戳插入方案

不同数据库的实现方式略有差异,以下是主流数据库的可行方案,解决你之前DATEADD方法失效的问题:

MySQL/MariaDB

两种简洁写法任选:

  1. 拼接日期与固定时间后转datetime:
INSERT INTO your_table (your_datetime_column)
VALUES (STR_TO_DATE(CONCAT(DATE(CURRENT_TIMESTAMP), ' 22:00:00'), '%Y-%m-%d %H:%i:%s'));
  1. 用TIMESTAMP函数直接组合日期和时间:
INSERT INTO your_table (your_datetime_column)
VALUES (TIMESTAMP(CURDATE(), '22:00:00'));

SQL Server

核心是先把当前时间截断为仅日期部分(0点整),再添加22小时:

INSERT INTO your_table (your_datetime_column)
VALUES (DATEADD(HOUR, 22, CAST(GETDATE() AS DATE)));

你之前的方法失效,大概率是没把CURRENT_TIMESTAMP/GETDATE()转换为DATE类型,导致原时间的时分秒被保留,加22小时后无法得到固定的22:00。

PostgreSQL

直接给当前日期加上22小时间隔:

INSERT INTO your_table (your_datetime_column)
VALUES (CURRENT_DATE + INTERVAL '22 hours');

或者用字符串拼接转换:

INSERT INTO your_table (your_datetime_column)
VALUES ((CURRENT_DATE || ' 22:00:00')::timestamp);

Oracle

截断当前日期到0点后,加上22/24天(等价于22小时):

INSERT INTO your_table (your_datetime_column)
VALUES (TRUNC(SYSDATE) + 22/24);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:25:15