Trong PostgreSQL, chúng ta có thể sử dụng extract()
cùng với epoch
đối số để trả về dấu thời gian Unix.
Chúng tôi có thể trả lại dấu thời gian Unix dựa trên ngày / giờ hiện tại hoặc chúng tôi có thể lấy nó dựa trên một ngày / giờ được chỉ định khác.
Dấu thời gian Unix (còn được gọi là thời gian Unix Epoch, Unix time, hoặc POSIX time) là số giây đã trôi qua kể từ 00:00:00 Thứ Năm, ngày 1 tháng 1 năm 1970, Giờ Phối hợp Quốc tế (UTC).
Lấy Dấu thời gian Unix Hiện tại
Dưới đây là một ví dụ về cách lấy dấu thời gian Unix từ ngày và giờ hiện tại:
SELECT extract(epoch from now());
Kết quả:
1650152298.430101
Giá trị ngày
Dưới đây là một ví dụ về việc lấy dấu thời gian Unix từ một date
được chỉ định giá trị:
SELECT extract(epoch from date '2030-08-15');
Kết quả:
1912982400
Khi được sử dụng với date
giá trị, epoch
trả về số giây danh nghĩa kể từ 1970-01-01 00:00:00, bất kể múi giờ hoặc quy tắc tiết kiệm ánh sáng ban ngày.
Giá trị dấu thời gian
Dưới đây là một ví dụ về việc lấy dấu thời gian Unix từ một timestamp
được chỉ định giá trị:
SELECT extract(epoch from timestamp '2030-08-15 03:30:45');
Kết quả:
1912995045
Khi được sử dụng với timestamp
giá trị, epoch
trả về số giây danh nghĩa kể từ 1970-01-01 00:00:00, bất kể múi giờ hoặc quy tắc tiết kiệm ánh sáng ban ngày. Điều này cũng giống như khi sử dụng date
giá trị.
Dấu thời gian có giá trị múi giờ
Dưới đây là một ví dụ về việc lấy dấu thời gian Unix từ một timestamp with time zone
giá trị:
SELECT extract(
epoch from timestamp with time zone '2030-08-15 03:30:45.12-08'
);
Kết quả:
1913023845.12
Khi được sử dụng với timestamp with time zone
giá trị, epoch
trả về số giây kể từ 1970-01-01 00:00:00 UTC (âm cho dấu thời gian trước đó)
Khoảng thời gian
Chúng tôi cũng có thể lấy dấu thời gian Unix từ một khoảng thời gian interval
giá trị:
SELECT extract(epoch from interval '7 days 2 hours');
Kết quả:
612000
Khi được sử dụng với interval
giá trị, epoch
trả về tổng số giây trong khoảng thời gian.