PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách chuyển đổi Dấu thời gian Unix thành Giá trị Ngày / Giờ trong PostgreSQL

Trong PostgreSQL, chúng ta có thể sử dụng to_timestamp() chức năng chuyển đổi giá trị dấu thời gian Unix thành giá trị ngày / giờ.

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).

Ví dụ

Dưới đây là một ví dụ đơn giản để chứng minh:

SELECT to_timestamp(1912995045);

Kết quả:

2030-08-15 03:30:45+00

Trong trường hợp này, tôi đã chuyển một giá trị dấu thời gian Unix cụ thể.

Dưới đây là một ví dụ khác chứng minh rõ hơn cách kết quả phản ánh giá trị dấu thời gian Unix đã cung cấp:

SELECT 
    now() AS "Current Date/Time",
    extract(epoch from now()) AS "Unix Timestamp",
    to_timestamp(extract(epoch from now())) AS "And back again...";

Kết quả:

       Current Date/Time       |  Unix Timestamp   |       And back again...       
-------------------------------+-------------------+-------------------------------
 2022-04-19 19:25:27.068737+00 | 1650396327.068737 | 2022-04-19 19:25:27.068737+00

Trong ví dụ này, chúng tôi đã sử dụng now() để xuất ngày và giờ hiện tại. Sau đó, chúng tôi sử dụng extract() để lấy dấu thời gian Unix từ giá trị ngày và giờ đó. Cuối cùng, chúng tôi đã sử dụng to_timestamp() để chuyển đổi nó trở lại giá trị ngày và giờ ban đầu.

Chuyển đổi thành ngày tháng

Chúng tôi cũng có thể truyền kết quả dưới dạng date giá trị để loại bỏ phần thời gian:

SELECT to_timestamp(1912995045)::date;

Kết quả:

2030-08-15

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhiều SQL hơn, ít mã hơn, với PostgreSQL

  2. Pandas cập nhật sql

  3. Có thời gian chờ cho các kết nối PostgreSQL nhàn rỗi không?

  4. Cách tìm các bản ghi trùng lặp trong PostgreSQL

  5. Cách hoạt động của to_char () trong PostgreSQL