Úvod do datových typů pro datum a čas

Time Series Analysis in PostgreSQL

Jasmin Ludolf

Content Developer, DataCamp

Datové typy pro datum a čas

  • Datové typy Date, Time, DateTime

V PostgreSQL:

  • DATE : pouze datum
  • TIME : čas bez časové zóny
  • TIMESTAMP : datum a čas bez časové zóny
  • TIMESTAMPTZ : TIMESTAMP s časovou zónou
  • INTERVAL : časový úsek mezi dvěma body

Ilustrace kalendáře a ciferníku hodin.

Time Series Analysis in PostgreSQL

Hodnoty data a času

  • DATE : RRRR-MM-DD (mezinárodní standard ISO 8601)
  • TIME : HH:MM:SS (sekundy mohou být desetinné, 12 nebo 24hodinový formát)
  • TIMESTAMP : RRRR-MM-DD HH:MM:SS
  • TIMESTAMPTZ : RRRR-MM-DD HH:MM:SS+/-HH (+01:00 nebo CET)
  • INTERVAL : příklad vstupu: 1 02:30:04
    • Interval 1 den, 2 hodiny, 30 minut, 4 sekundy
Time Series Analysis in PostgreSQL

Datum a čas v tabulce

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');
Time Series Analysis in PostgreSQL

Datum a čas v tabulce

 

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  |
Time Series Analysis in PostgreSQL

Neúplná nebo nesprávná data

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            |
Time Series Analysis in PostgreSQL

Neúplná nebo nesprávná data

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            |
Time Series Analysis in PostgreSQL

Unixový čas

  • Unixový čas : sekundy od začátku epochy Unix
  • Epocha Unix : 1. ledna 1970 00:00:00, UTC
|unix_time |
|----------|
|1483444800|

To je 3. ledna 2017!

Time Series Analysis in PostgreSQL

Pojďme cvičit!

Time Series Analysis in PostgreSQL

Preparing Video For Download...