บทนำสู่ชนิดข้อมูลวันที่และเวลา

การวิเคราะห์อนุกรมเวลาใน PostgreSQL

Jasmin Ludolf

Content Developer, DataCamp

ชนิดข้อมูลวันที่และเวลา

  • ชนิดข้อมูล Date, Time, DateTime

ใน PostgreSQL:

  • DATE : เก็บข้อมูลวันที่เท่านั้น
  • TIME : ข้อมูลเวลาโดยไม่มี time zone
  • TIMESTAMP : รวมวันที่และเวลาโดยไม่มี time zone
  • TIMESTAMPTZ : TIMESTAMP พร้อม time zone
  • 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 time

  • Unix time : จำนวนวินาทีนับจาก Unix epoch
  • Unix epoch : 1 มกราคม 1970 00:00:00 UTC
|unix_time |
|----------|
|1483444800|

นั่นคือวันที่ 3 มกราคม 2017!

การวิเคราะห์อนุกรมเวลาใน PostgreSQL

มาฝึกกันเถอะ!

การวิเคราะห์อนุกรมเวลาใน PostgreSQL

Preparing Video For Download...