GaussDB PG 支持的标准日期时间类型​​详解【华为根技术】

举报
Jack20 发表于 2025/06/12 15:32:55 2025/06/12
【摘要】 一、GaussDB PG 支持的标准日期时间类型​​GaussDB PG 完全兼容 PostgreSQL 的日期时间类型体系,常用类型包括:类型名称描述存储空间示例值DATE仅存储日期(年、月、日)4 字节2024-05-20TIME [WITHOUT TIME ZONE]仅存储时间(时、分、秒),默认无时区8 字节14:30:45TIMESTAMP [WITHOUT TIME ZONE]存...

一、GaussDB PG 支持的标准日期时间类型​

GaussDB PG 完全兼容 PostgreSQL 的日期时间类型体系,常用类型包括:

类型名称 描述 存储空间 示例值
DATE 仅存储日期(年、月、日) 4 字节 2024-05-20
TIME [WITHOUT TIME ZONE] 仅存储时间(时、分、秒),默认无时区 8 字节 14:30:45
TIMESTAMP [WITHOUT TIME ZONE] 存储日期和时间(年、月、日、时、分、秒),默认无时区 8 字节 2024-05-20 14:30:45
TIMESTAMP WITH TIME ZONE 存储日期、时间及时区信息(实际存储为 UTC 时间+时区偏移) 12 字节 2024-05-20 14:30:45+08

​二、“DATETIME”类型的替代方案​

若您习惯使用 DATETIME 类型(常见于 MySQL),在 GaussDB PG 中可通过以下方式替代:

​1. 直接使用 TIMESTAMP WITHOUT TIME ZONE

DATETIME 在标准 SQL 中通常等价于 TIMESTAMP WITHOUT TIME ZONE(无时区的日期时间)。GaussDB PG 完全支持此类型,可直接替代:

-- 创建表时使用 TIMESTAMP 替代 DATETIME
CREATE TABLE example (
    id INT,
    event_time TIMESTAMP WITHOUT TIME ZONE  -- 等价于 MySQL 的 DATETIME
);

-- 插入数据(格式兼容)
INSERT INTO example VALUES (1, '2024-05-20 14:30:45');

​2. 若需有时区信息,使用 TIMESTAMP WITH TIME ZONE

若业务需要记录时区(如跨时区的日志),推荐使用 TIMESTAMPTZTIMESTAMP WITH TIME ZONE 的缩写):

CREATE TABLE timezone_example (
    log_id INT,
    log_time TIMESTAMPTZ  -- 存储带时区的时间戳(自动转换为 UTC 存储)
);

-- 插入带时区的时间(会自动转换为 UTCINSERT INTO timezone_example VALUES (1, '2024-05-20 14:30:45+08');  -- 实际存储为 2024-05-20 06:30:45 UTC

​三、注意事项​

  1. ​类型别名与兼容性​
    GaussDB PG 支持部分类型别名(如 TIMESTAMPTZTIMESTAMP WITH TIME ZONE 的别名),但建议使用标准名称以避免歧义。

  2. ​时间格式解析​
    GaussDB PG 支持多种时间格式(如 YYYY-MM-DD HH24:MI:SSYYYYMMDDHH24MISS),插入时需确保格式与声明的类型匹配。若需自定义格式,可使用 TO_TIMESTAMP 函数显式转换:

    -- 将字符串 '20240520143045' 转换为 TIMESTAMP
    SELECT TO_TIMESTAMP('20240520143045', 'YYYYMMDDHH24MISS');  -- 结果:2024-05-20 14:30:45
  3. ​时区处理​

    • TIMESTAMP WITHOUT TIME ZONE 仅存储本地时间,不涉及时区转换,适合业务逻辑明确不跨时区的场景(如本地业务日志)。
    • TIMESTAMP WITH TIME ZONE 存储的是 UTC 时间+时区信息,适合需要跨时区同步的场景(如全球用户行为记录)。

​四、总结​

GaussDB PG 模式下​​完全支持标准的日期时间类型​​,若需替代“DATETIME”,推荐使用 TIMESTAMP WITHOUT TIME ZONE(无时区)或 TIMESTAMP WITH TIME ZONE(有时区)。根据业务需求选择即可,两者均能满足大部分日期时间存储与计算场景。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。