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

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

Trong PostgreSQL, timeofday() là một hàm thời gian không theo chuẩn SQL trả về ngày và giờ hiện tại, với chữ viết tắt là múi giờ.

Nó tương tự với clock_timestamp() , ngoại trừ việc nó trả về kết quả dưới dạng text được định dạng chuỗi thay vì timestamp with time zone giá trị.

Kết quả của cả hai hàm đều 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 các hàm nhiều lần trong một câu lệnh.

Cú pháp

Cú pháp như sau:

timeofday()

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 timeofday();

Kết quả:

Thu Jul 02 10:00:27.068776 2020 AEST

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 
  timeofday(),
  pg_sleep(5),
  timeofday(),
  pg_sleep(3),
  timeofday();

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

timeofday | Thu Jul 02 10:02:23.060770 2020 AEST
pg_sleep  | 
timeofday | Thu Jul 02 10:02:28.131195 2020 AEST
pg_sleep  | 
timeofday | Thu Jul 02 10:02:31.192749 2020 AEST

Ở đâ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 timeofday() đã đượ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() , tuy nhiên, nó cũng có thể hơi 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 
  timeofday(),
  timeofday(),
  timeofday();

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

timeofday | Thu Jul 02 10:03:26.044065 2020 AEST
timeofday | Thu Jul 02 10:03:26.044076 2020 AEST
timeofday | Thu Jul 02 10:03:26.044080 2020 AEST

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. Không thể cài đặt pg gem trên Mountain Lion

  2. So sánh các công cụ cân bằng tải cho PostgreSQL

  3. Không thể trừ các ngày giờ có nhận biết bù trừ và bù trừ

  4. Điều chỉnh các hoạt động Đầu vào / Đầu ra (I / O) cho PostgreSQL

  5. Cách trích xuất số tuần từ một ngày trong PostgreSQL