日期与时间数据类型简介

PostgreSQL 中的时间序列分析

Jasmin Ludolf

Content Developer, DataCamp

日期与时间数据类型

  • DateTimeDateTime 数据类型

PostgreSQL 中:

  • DATE:仅日期
  • TIME:不含时区的时间
  • TIMESTAMP:日期+时间,不含时区
  • TIMESTAMPTZ:带时区的 TIMESTAMP
  • INTERVAL:两个时间点的间隔

日历和表盘的插图。

PostgreSQL 中的时间序列分析

日期与时间取值

  • DATE:YYYY-MM-DD(ISO 8601 国际标准)
  • TIME:HH:MM:SS(秒可为小数,12/24 小时制)
  • TIMESTAMP:YYYY-MM-DD HH:MM:SS
  • TIMESTAMPTZ:YYYY-MM-DD HH:MM:SS+/-HH(如 +01:00 或 CET)
  • INTERVAL:示例输入为 1 02:30:04
    • 表示 1 天 2 小时 30 分 4 秒
PostgreSQL 中的时间序列分析

表中的日期与时间

CREATE TABLE timetable (
    date_info DATE,

time_info TIMESTAMP,
time_with_zone TIMESTAMPTZ,
interval_length INTERVAL);
INSERT INTO timetable(
    date_info,

time_info,
time_with_zone,
interval_length)
VALUES ( 'January 23 2013',
'2023-01-20 18:00:00',
'2023-01-20 18:00:00 EST',
'1 02:03:04');
PostgreSQL 中的时间序列分析

表中的日期与时间

 

SELECT *
FROM timetable;

 

| date_info  | time_info           | time_with_zone            | interval_length |
| ---------- | ------------------- | ------------------------- | --------------- |
| 2023-01-20 | 2023-01-20 18:00:00 | 2023-01-20 00:00:00+01:00 | 1 day, 2:03:04  |
PostgreSQL 中的时间序列分析

不完整或不正确的数据

INSERT INTO timetable(time_info)
VALUES ('2020-02-20 12:00:00');
SELECT *
FROM timetable;
| date_info  | time_info           | time_with_zone            | interval_length |
| ---------- | ------------------- | ------------------------- | --------------- |
| 2023-01-20 | 2023-01-20 18:00:00 | 2023-01-20 00:00:00+01:00 | 1 day, 2:03:04  |
| null.      | 2020-02-20 12:00:00 | null                      | null            |
PostgreSQL 中的时间序列分析

不完整或不正确的数据

INSERT INTO timetable(time_info)
VALUES ('2020-02-20 02:00:00 EST');
SELECT *
FROM timetable;
| date_info  | time_info           | time_with_zone            | interval_length |
| ---------- | ------------------- | ------------------------- | --------------- |
| 2023-01-20 | 2023-01-20 18:00:00 | 2023-01-20 00:00:00+01:00 | 1 day, 2:03:04  |
| null.      | 2020-02-20 02:00:00 | null                      | null            |
PostgreSQL 中的时间序列分析

Unix 时间

  • Unix 时间:自 Unix 纪元以来的秒数
  • Unix 纪元:1970-01-01 00:00:00,UTC
|unix_time |
|----------|
|1483444800|

即 2017 年 1 月 3 日!

PostgreSQL 中的时间序列分析

Passons à la pratique !

PostgreSQL 中的时间序列分析

Preparing Video For Download...