日期與時間資料型別入門

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 time:自 Unix 紀元起算的秒數
  • Unix epoch:January 1 1970 00:00:00,UTC
|unix_time |
|----------|
|1483444800|

也就是 2017 年 1 月 3 日!

PostgreSQL 的時間序列分析

一起來練習吧!

PostgreSQL 的時間序列分析

Preparing Video For Download...