Giới thiệu về kiểu dữ liệu ngày và giờ

Phân tích chuỗi thời gian trong PostgreSQL

Jasmin Ludolf

Content Developer, DataCamp

Kiểu dữ liệu ngày và giờ

  • Kiểu dữ liệu Date, Time, DateTime

Trong PostgreSQL:

  • DATE: chỉ dữ liệu ngày
  • TIME: giờ không có múi giờ
  • TIMESTAMP: kết hợp ngày và giờ, không có múi giờ
  • TIMESTAMPTZ: TIMESTAMP kèm múi giờ
  • INTERVAL: khoảng thời gian giữa hai mốc

Minh họa lịch và mặt đồng hồ.

Phân tích chuỗi thời gian trong PostgreSQL

Giá trị ngày và giờ

  • DATE: YYYY-MM-DD (chuẩn quốc tế ISO 8601)
  • TIME: HH:MM:SS (giây có thể thập phân, đồng hồ 12/24h)
  • TIMESTAMP: YYYY-MM-DD HH:MM:SS
  • TIMESTAMPTZ: YYYY-MM-DD HH:MM:SS+/-HH (+01:00 hoặc CET)
  • INTERVAL: ví dụ nhập: 1 02:30:04
    • Khoảng 1 ngày, 2 giờ, 30 phút, 4 giây
Phân tích chuỗi thời gian trong PostgreSQL

Ngày và giờ trong một bảng

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');
Phân tích chuỗi thời gian trong PostgreSQL

Ngày và giờ trong một bảng

 

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  |
Phân tích chuỗi thời gian trong PostgreSQL

Dữ liệu thiếu hoặc sai

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            |
Phân tích chuỗi thời gian trong PostgreSQL

Dữ liệu thiếu hoặc sai

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            |
Phân tích chuỗi thời gian trong PostgreSQL

Thời gian Unix

  • Thời gian Unix: số giây từ mốc Unix
  • Mốc Unix: 01-01-1970 00:00:00, UTC
|unix_time |
|----------|
|1483444800|

Tức là ngày 03-01-2017!

Phân tích chuỗi thời gian trong PostgreSQL

Ayo berlatih!

Phân tích chuỗi thời gian trong PostgreSQL

Preparing Video For Download...