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

PostgreSQL如何为timestamp类型字段设置默认值为每日09:00

解决方案

问题说明

你当前编写的SQL语句缺少SET DEFAULT后需要指定的默认值规则,对应不同数据库环境的正确写法如下:

PostgreSQL 环境写法

单独设置默认值(已完成字段类型转换时使用)

ALTER TABLE note
ALTER COLUMN entered SET DEFAULT CURRENT_DATE + INTERVAL '09:00:00';

合并类型转换+默认值设置(未完成类型转换时使用)

ALTER TABLE note
ALTER COLUMN entered TYPE timestamp USING entered::timestamp,
ALTER COLUMN entered SET DEFAULT CURRENT_DATE + INTERVAL '09:00:00';

历史数据统一修正为09:00

如果需要把原有date类型转换过来的历史数据的时间部分也改为09:00,执行:

UPDATE note SET entered = entered::date + INTERVAL '09:00:00';

MySQL 环境写法

单独设置默认值(已完成字段类型转换时使用)

ALTER TABLE note
ALTER COLUMN entered SET DEFAULT DATE_ADD(CURDATE(), INTERVAL 9 HOUR);

合并类型转换+默认值设置(未完成类型转换时使用)

ALTER TABLE note
MODIFY COLUMN entered TIMESTAMP DEFAULT DATE_ADD(CURDATE(), INTERVAL 9 HOUR);

历史数据统一修正为09:00

UPDATE note SET entered = CONCAT(DATE(entered), ' 09:00:00');

注意事项

  • timestamp类型会受数据库时区配置影响,若业务涉及多时区场景,建议先确认数据库时区和业务需求匹配。
  • 执行表结构变更前建议先备份数据,避免误操作导致数据丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:54:01