MySQL函数 DATE_SUB()
一、定义
DATE_SUB() 函数从日期减去指定的时间间隔。
二、语法
DATE_SUB(date, INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type 参数可以是下列值:
Type值 | 说明 |
MICROSECOND | 返回时间或日期时间表达式expr的微秒,这个数字范围为 0 到 999999 |
SECOND | 返回时间秒值,范围为0〜59。 |
MINUTE | 返回时间的分钟,范围为0至59。 |
HOUR | 返回时间的小时部分。返回值的范围为0至23的小时值。然而,TIME值的范围实际上要大得多,所以HOUR可以返回大于23的值。 |
DAY | 返回给定日期的月份的日期部分。 |
WEEK | 返回日期的星期数 |
MONTH | 返回日期的月份,取值范围为0〜12。 |
QUARTER | 返回年份日期的季度值,范围为1〜4 |
YEAR | 返回年份日期,范围为1000〜9999或0 |
SECOND_MICROSECOND | |
MINUTE_MICROSECOND | |
MINUTE_SECOND | |
HOUR_MICROSECOND | |
HOUR_SECOND | |
HOUR_MINUTE | |
DAY_MICROSECOND | |
DAY_SECOND | |
DAY_MINUTE | |
DAY_HOUR | |
YEAR_MONTH |
三、实例:
1、创建表:
mysql> CREATE TABLE Orders(
-> OrderId INT NOT NULL AUTO_INCREMENT,
-> ProductName VARCHAR(100) NOT NULL,
-> OrderDate DATETIME,
-> PRIMARY KEY (OrderId)
-> );
Query OK, 0 rows affected (0.04 sec)
2、往表中插入一条数据:
mysql> INSERT INTO Orders
-> (ProductName, OrderDate)
-> VALUES
-> ("洗衣液", NOW());
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM Orders;
+---------+-------------+---------------------+
| OrderId | ProductName | OrderDate |
+---------+-------------+---------------------+
| 1 | 洗衣液 | 2019-12-20 11:33:10 |
+---------+-------------+---------------------+
1 row in set (0.00 sec)
3、查询数据:
mysql> SELECT OrderId, DATE_SUB(OrderDate, INTERVAL 5 DAY) AS SubtractDate FROM Orders;
+---------+---------------------+
| OrderId | SubtractDate |
+---------+---------------------+
| 1 | 2019-12-15 11:33:10 |
+---------+---------------------+
1 row in set (0.01 sec)