在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-hk/n/297740.html