В PostgreSQL можем да използваме extract()
функция заедно с epoch
аргумент за връщане на времевата марка на Unix.
Можем да върнем клеймото за време на Unix въз основа на текущата дата/час или можем да го получим въз основа на друга определена дата/час.
Unix timestamp (известен също като Unix Epoch time, Unix time или POSIX time) е броят на секундите, които са изминали от 00:00:00 четвъртък, 1 януари 1970 г., координирано универсално време (UTC).
Вземете текущото времеви печат на Unix
Ето пример за получаване на времевия печат на Unix от текущата дата и час:
SELECT extract(epoch from now());
Резултат:
1650152298.430101
Стойности за дата
Ето пример за получаване на времевата марка на Unix от определена date
стойност:
SELECT extract(epoch from date '2030-08-15');
Резултат:
1912982400
Когато се използва с date
стойности, epoch
връща номиналния брой секунди от 1970-01-01 00:00:00, без оглед на часовата зона или правилата за лятно часово време.
Стойности на времеви отпечатъци
Ето пример за получаване на времевия печат на Unix от посочен timestamp
стойност:
SELECT extract(epoch from timestamp '2030-08-15 03:30:45');
Резултат:
1912995045
Когато се използва с timestamp
стойности, epoch
връща номиналния брой секунди от 1970-01-01 00:00:00, без оглед на часовата зона или правилата за лятно часово време. Това е същото като при използване на date
стойности.
Часово клеймо със стойност на часовата зона
Ето пример за получаване на клеймото за време на Unix от определен timestamp with time zone
стойност:
SELECT extract(
epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
);
Резултат:
1913023845.12
Когато се използва с timestamp with time zone
стойности, epoch
връща броя на секундите от 1970-01-01 00:00:00 UTC (отрицателно за времеви печати преди това)
Интервали
Можем също да получим времеви печат на Unix от interval
стойност:
SELECT extract(epoch from interval '7 days 2 hours');
Резултат:
612000
Когато се използва с interval
стойности, epoch
връща общия брой секунди в интервала.