Introducere în tipurile de date dată și oră

Analiza seriilor de timp în PostgreSQL

Jasmin Ludolf

Content Developer, DataCamp

Tipuri de date dată și oră

  • Tipuri de date Dată, Oră, DataOră

În PostgreSQL:

  • DATE : doar data
  • TIME : ora fără fus orar
  • TIMESTAMP : dată și oră fără fus orar
  • TIMESTAMPTZ : TIMESTAMP cu fus orar
  • INTERVAL : durata dintre două momente

Ilustrație cu un calendar și un ceas.

Analiza seriilor de timp în PostgreSQL

Valori pentru dată și oră

  • DATE : YYYY-MM-DD (standard internațional ISO 8601)
  • TIME : HH:MM:SS (secundele pot fi zecimale, format 12 sau 24h)
  • TIMESTAMP : YYYY-MM-DD HH:MM:SS
  • TIMESTAMPTZ : YYYY-MM-DD HH:MM:SS+/-HH (+01:00 sau CET)
  • INTERVAL : exemplu de intrare: 1 02:30:04
    • Interval de 1 zi, 2 ore, 30 minute, 4 secunde
Analiza seriilor de timp în PostgreSQL

Dată și oră într-un tabel

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');
Analiza seriilor de timp în PostgreSQL

Dată și oră într-un tabel

 

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  |
Analiza seriilor de timp în PostgreSQL

Date parțiale sau incorecte

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            |
Analiza seriilor de timp în PostgreSQL

Date parțiale sau incorecte

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            |
Analiza seriilor de timp în PostgreSQL

Timp Unix

  • Timp Unix : secunde scurse de la epoca Unix
  • Epoca Unix : 1 ianuarie 1970 00:00:00, UTC
|unix_time |
|----------|
|1483444800|

Acesta corespunde datei de 3 ianuarie 2017!

Analiza seriilor de timp în PostgreSQL

Să exersăm!

Analiza seriilor de timp în PostgreSQL

Preparing Video For Download...