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

Cách PERIOD_DIFF () hoạt động trong MariaDB

Trong MariaDB, PERIOD_DIFF() là một hàm ngày và giờ được tích hợp sẵn trả về số tháng giữa hai khoảng thời gian.

Cú pháp

Cú pháp như sau:

PERIOD_DIFF(P1,P2)

Ở đâu P1P2 là các khoảng thời gian để có được sự khác biệt giữa.

Cả hai đối số đều có định dạng YYMM hoặc YYYYMM. Chúng không phải là giá trị ngày tháng.

Ví dụ

Đây là một ví dụ:

SELECT PERIOD_DIFF(202108, 202101);

Kết quả:

+-----------------------------+
| PERIOD_DIFF(202108, 202101) |
+-----------------------------+
|                           7 |
+-----------------------------+

Trong ví dụ này, có bảy tháng chênh lệch giữa hai giai đoạn.

Chuyển đổi thứ tự

Nếu khoảng thời gian đầu tiên là khoảng thời gian sớm hơn khoảng thời gian thứ hai, kết quả là một giá trị âm.

Đây là những gì sẽ xảy ra khi tôi chuyển đổi thứ tự của các đối số trong ví dụ trước:

SELECT PERIOD_DIFF(202101, 202108);

Kết quả:

+-----------------------------+
| PERIOD_DIFF(202101, 202108) |
+-----------------------------+
|                          -7 |
+-----------------------------+

Năm hai chữ số

Nếu bất kỳ đối số nào chứa năm hai chữ số, các giá trị từ 00 đến 69 được chuyển đổi thành từ 2000 đến 2069, trong khi các giá trị từ 70 được chuyển đổi thành 1970 trở lên.

Ví dụ:

SELECT 
    PERIOD_DIFF(6911, 6912),
    PERIOD_DIFF(6911, 7001);

Kết quả:

+-------------------------+-------------------------+
| PERIOD_DIFF(6911, 6912) | PERIOD_DIFF(6911, 7001) |
+-------------------------+-------------------------+
|                      -1 |                    1198 |
+-------------------------+-------------------------+

Thiếu đối số

Gọi PERIOD_DIFF() với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào, dẫn đến lỗi:

SELECT PERIOD_DIFF();

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'

Và một ví dụ khác:

SELECT PERIOD_DIFF( 6912 );

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả lại hàng ngẫu nhiên từ một bảng trong MariaDB

  2. Laravel:Khóa được chỉ định quá dài; độ dài khóa tối đa là 767 byte

  3. MariaDB RTRIM () so với RTRIM_ORACLE ():Sự khác biệt là gì?

  4. Cách triển khai MariaDB Cluster 10.5 để có tính khả dụng cao

  5. Cách thêm AM / PM vào giá trị thời gian hoặc ngày giờ trong MariaDB