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

Cách clock_timestamp () hoạt động trong PostgreSQL

Trong PostgreSQL, clock_timestamp() là một hàm thời gian không chuẩn SQL trả về ngày và giờ hiện tại.

Một lưu ý quan trọng của hàm này là kết quả của nó thay đổi trong suốt quá trình thực thi một câu lệnh. Do đó, bạn có thể nhận được một kết quả khác trong các phần khác nhau của câu lệnh nếu bạn gọi hàm nhiều lần trong một câu lệnh.

Cú pháp

Cú pháp đơn giản như sau:

clock_timestamp()

Vì vậy, nó không chấp nhận bất kỳ tham số nào.

Ví dụ

Đây là một ví dụ cơ bản để chứng minh.

SELECT clock_timestamp();

Kết quả:

2020-07-01 09:53:22.823731+10

Nhiều cuộc gọi

Dưới đây là một ví dụ cơ bản để chứng minh kết quả có thể khác nhau như thế nào khi bạn gọi hàm nhiều lần trong một câu lệnh SQL.

\x
SELECT 
  clock_timestamp(),
  pg_sleep(5),
  clock_timestamp(),
  pg_sleep(3),
  clock_timestamp();

Kết quả (sử dụng đầu ra dọc):

clock_timestamp | 2020-07-01 09:58:29.744838+10
pg_sleep        |
clock_timestamp | 2020-07-01 09:58:34.813448+10
pg_sleep        |
clock_timestamp | 2020-07-01 09:58:37.859197+10

Ở đây, tôi đã sử dụng pg_sleep() chức năng trì hoãn việc thực thi trong vài giây. Cuộc gọi đầu tiên trì hoãn việc thực thi trong 5 giây và cuộc gọi thứ hai trì hoãn việc thực thi trong 3 giây.

Chúng ta có thể thấy rằng mỗi lần clock_timestamp() đã được gọi, thời gian thực tế hơi khác một chút. Điều này chủ yếu là do pg_sleep() nhưng nó vẫn có thể khác nếu không có nó, tùy thuộc vào tốc độ chạy của truy vấn.

Đây lại là nó mà không có pg_sleep() cuộc gọi.

SELECT 
  clock_timestamp(),
  clock_timestamp(),
  clock_timestamp();

Kết quả (sử dụng đầu ra dọc):

clock_timestamp | 2020-07-01 10:03:10.828557+10
clock_timestamp | 2020-07-01 10:03:10.828558+10
clock_timestamp | 2020-07-01 10:03:10.828558+10

Những ví dụ này sử dụng đầu ra theo chiều dọc (thường được gọi là hiển thị mở rộng trong psql) để giúp đọc kết quả dễ dàng hơn.

Bạn có thể chuyển đổi hiển thị mở rộng trong psql với \x .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để cài đặt Postgis thành bản cài đặt Keg của [email bảo vệ] bằng Homebrew?

  2. Tính toán Khóa chính tiếp theo - có định dạng cụ thể

  3. Bảng có giá trị Tham số tương đương trong Postgresql

  4. Xóa bản sao khỏi bảng

  5. Đối với người mới bắt đầu, có nhiều sự khác biệt giữa MySQL và PostgreSQL không