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

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

Trong MariaDB, DATE_SUB() là một chức năng ngày và giờ được tích hợp sẵn cho phép bạn trừ một số tiền cho một ngày.

Nó cho phép bạn thay đổi ngày bằng cách chỉ định ngày, đơn vị cần trừ và số tiền cần trừ. Bạn có thể chuyển một số tiền âm để thêm vào ngày, thay vì trừ vào đó.

Cú pháp

Cú pháp như sau:

DATE_SUB(date,INTERVAL expr unit)

Nơi date là ngày thay đổi, expr là số tiền cần trừ và unit là đơn vị ngày / giờ để trừ (ví dụ:giây, phút, v.v.).

Ví dụ

Đây là một ví dụ cơ bản:

SELECT DATE_SUB('2021-05-31 10:00:00', INTERVAL 1 HOUR);

Kết quả:

+--------------------------------------------------+
| DATE_SUB('2021-05-31 10:00:00', INTERVAL 1 HOUR) |
+--------------------------------------------------+
| 2021-05-31 09:00:00                              |
+--------------------------------------------------+

Điều này giống như làm như sau:

SELECT '2021-05-31 10:00:00' - INTERVAL 1 HOUR;

Kết quả:

+-----------------------------------------+
| '2021-05-31 10:00:00' - INTERVAL 1 HOUR |
+-----------------------------------------+
| 2021-05-31 09:00:00                     |
+-----------------------------------------+

Khoảng thời gian phủ định

Cung cấp khoảng âm thêm số tiền đó kể từ ngày.

Ví dụ:

SELECT DATE_SUB('2021-05-31 10:00:00', INTERVAL -1 HOUR);

Kết quả:

+---------------------------------------------------+
| DATE_SUB('2021-05-31 10:00:00', INTERVAL -1 HOUR) |
+---------------------------------------------------+
| 2021-05-31 11:00:00                               |
+---------------------------------------------------+

Các đơn vị khác

Dưới đây là một ví dụ thêm khoảng thời gian là 1 vào các đơn vị ngày và giờ khác nhau:

SELECT 
    DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 YEAR) AS YEAR,
    DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 MONTH) AS MONTH,
    DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 DAY) AS DAY,
    DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 HOUR) AS HOUR,
    DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
    DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 SECOND) AS SECOND,
    DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND;

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

       YEAR: 2020-05-10 10:00:00
      MONTH: 2021-04-10 10:00:00
        DAY: 2021-05-09 10:00:00
       HOUR: 2021-05-10 09:00:00
     MINUTE: 2021-05-10 09:59:00
     SECOND: 2021-05-10 09:59:59
MICROSECOND: 2021-05-10 09:59:59.999999

Đơn vị tổng hợp

Dưới đây là một ví dụ sử dụng các đơn vị tổng hợp:

SELECT 
    DATE_SUB('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
    DATE_SUB('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
    DATE_SUB('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE";

Kết quả:

+---------------------+---------------------+---------------------+
| YEAR_MONTH          | HOUR_SECOND         | DAY_MINUTE          |
+---------------------+---------------------+---------------------+
| 2020-03-01 10:00:00 | 2021-05-01 08:34:25 | 2021-05-01 08:30:00 |
+---------------------+---------------------+---------------------+

Ngày trống

Chuyển null cho ngày trả về null :

SELECT DATE_SUB(null, INTERVAL 1 YEAR);

Kết quả:

+---------------------------------+
| DATE_SUB(null, INTERVAL 1 YEAR) |
+---------------------------------+
| NULL                            |
+---------------------------------+

Thiếu đối số

Đang gọi DATE_SUB() 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 DATE_SUB();

Kết quả:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt MariaDB trên máy Mac

  2. Tránh khóa nhà cung cấp cơ sở dữ liệu cho MySQL hoặc MariaDB

  3. Xử lý các truy vấn chạy dài của MySQL

  4. Cách định dạng số trong MariaDB

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