在MySQL中,日期和時間處理是非常常見的需求。MySQL提供了非常豐富的日期和時間處理函數,其中mysqlsubdate是一個非常有用的函數,它允許你從一個日期或日期時間中減去指定的時間間隔。
一、基本語法
mysql> SELECT subdate('2019-10-01', INTERVAL 1 MONTH);
+----------------------------------------+
| subdate('2019-10-01', INTERVAL 1 MONTH) |
+----------------------------------------+
| 2019-09-01 |
+----------------------------------------+
1 row in set (0.00 sec)
mysqlsubdate()函數的語法非常簡單,它只需要兩個參數:一個日期或日期時間和一個時間間隔。時間間隔可以是任何MySQL支持的時間參數,如DAY、WEEK、MONTH、QUARTER、YEAR、MINUTE、HOUR和SECOND。
mysqlsubdate()函數返回一個日期或日期時間,該值是從原始日期時間中減去指定時間間隔後的結果。下面是一個非常簡單的例子:從2019年10月1日中減去1個月,返回2019年9月1日。
二、支持的時間間隔
作為MySQL日期和時間函數的一部分,mysqlsubdate()函數支持多種不同的時間間隔,包括:
- SECOND:秒
- MINUTE:分鐘
- HOUR:小時
- DAY:天
- WEEK:星期
- MONTH:月
- QUARTER:季度
- YEAR:年
下面的例子展示了如何使用不同的時間間隔來執行mysqlsubdate()函數:
mysql> SELECT subdate('2020-10-01 12:34:56', INTERVAL 1 SECOND);
+------------------------------------------------+
| subdate('2020-10-01 12:34:56', INTERVAL 1 SECOND) |
+------------------------------------------------+
| 2020-10-01 12:34:55 |
+------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT subdate('2020-10-01 12:34:56', INTERVAL 1 MINUTE);
+------------------------------------------------+
| subdate('2020-10-01 12:34:56', INTERVAL 1 MINUTE) |
+------------------------------------------------+
| 2020-10-01 12:33:56 |
+------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT subdate('2020-10-01 12:34:56', INTERVAL 1 HOUR);
+----------------------------------------------+
| subdate('2020-10-01 12:34:56', INTERVAL 1 HOUR) |
+----------------------------------------------+
| 2020-10-01 11:34:56 |
+----------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT subdate('2020-10-01 12:34:56', INTERVAL 1 DAY);
+---------------------------------------------+
| subdate('2020-10-01 12:34:56', INTERVAL 1 DAY) |
+---------------------------------------------+
| 2020-09-30 12:34:56 |
+---------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT subdate('2020-10-01 12:34:56', INTERVAL 1 WEEK);
+----------------------------------------------+
| subdate('2020-10-01 12:34:56', INTERVAL 1 WEEK) |
+----------------------------------------------+
| 2020-09-24 12:34:56 |
+----------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT subdate('2020-10-01 12:34:56', INTERVAL 1 MONTH);
+-----------------------------------------------+
| subdate('2020-10-01 12:34:56', INTERVAL 1 MONTH) |
+-----------------------------------------------+
| 2020-09-01 12:34:56 |
+-----------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT subdate('2020-10-01 12:34:56', INTERVAL 1 QUARTER);
+--------------------------------------------------+
| subdate('2020-10-01 12:34:56', INTERVAL 1 QUARTER) |
+--------------------------------------------------+
| 2020-07-01 12:34:56 |
+--------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT subdate('2020-10-01 12:34:56', INTERVAL 1 YEAR);
+-----------------------------------------------+
| subdate('2020-10-01 12:34:56', INTERVAL 1 YEAR) |
+-----------------------------------------------+
| 2019-10-01 12:34:56 |
+-----------------------------------------------+
1 row in set (0.00 sec)
三、使用變數
mysqlsubdate()函數允許您將一個日期或日期時間與一個變數相減。以下示例說明如何使用變數與mysqlsubdate()函數結合使用。
mysql> SET @mydate = '2020-10-01 12:34:56'; Query OK, 0 rows affected (0.01 sec) mysql> SELECT subdate(@mydate, INTERVAL 1 DAY); +--------------------------------------+ | subdate(@mydate, INTERVAL 1 DAY) | +--------------------------------------+ | 2020-09-30 12:34:56 | +--------------------------------------+ 1 row in set (0.00 sec)
在這個例子中,我們首先使用SET語句創建了一個名為@mydate的變數,並將其設置為2020年10月1日12:34:56。然後,我們在SELECT語句中使用@mydate作為輸入,使用mysqlsubdate()函數將其減去1天,並返回結果。
四、總結
mysqlsubdate()函數是MySQL非常有用的日期和時間處理函數。它允許你從一個日期或日期時間中減去指定的時間間隔。此外,mysqlsubdate()函數支持許多不同的時間間隔,包括秒、分鐘、小時、天、星期、月、季度和年。通過使用mysqlsubdate()函數,您可以輕鬆地將日期和日期時間處理為MySQL中的其他實體。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/297740.html
微信掃一掃
支付寶掃一掃