关于在MySQL中使用日期运算函数
- now() :获得当前系统时间
- year(日期值):获得日期值中的年份
- month(日期值):获得日期值中的月份
- day(日期值):获得日期值中的天数
- date_add(日期,interval 计算值 计算的字段)
注:计算值大于0表示往后推日期,小于0表示往前推日期
示例:
现在有一张date表:
mysql> select * from date1;
+----+------------+
| id | date |
+----+------------+
| 1 | 1998-05-06 |
+----+------------+
1 row in set (0.01 sec)
- now() :获得当前系统时间
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2021-08-24 21:50:29 |
+---------------------+
1 row in set (0.02 sec)
- year(日期值):获得日期值中的年份
mysql> select date,year(date) from date1;
+------------+------------+
| date | year(date) |
+------------+------------+
| 1998-05-06 | 1998 |
+------------+------------+
1 row in set (0.04 sec)
- month(日期值):获得日期值中的月份
mysql> select date,month(date) from date1;
+------------+-------------+
| date | month(date) |
+------------+-------------+
| 1998-05-06 | 5 |
+------------+-------------+
1 row in set (0.04 sec)
- day(日期值):获得日期值中的天数
mysql> select date,day(date) from date1;
+------------+-----------+
| date | day(date) |
+------------+-----------+
| 1998-05-06 | 6 |
+------------+-----------+
1 row in set (0.03 sec)
date_add(日期,interval 计算值 计算的字段)
往前推40年:
select date,date_add(date,interval -40 year) from date1;
mysql> select date,date_add(date,interval -40 year) from date1;
+------------+----------------------------------+
| date | date_add(date,interval -40 year) |
+------------+----------------------------------+
| 1998-05-06 | 1958-05-06 |
+------------+----------------------------------+
1 row in set (0.03 sec)
往后推10个月:
select date,date_add(date,interval 10 month) from date1;
mysql> select date,date_add(date,interval 10 month) from date1;
+------------+----------------------------------+
| date | date_add(date,interval 10 month) |
+------------+----------------------------------+
| 1998-05-06 | 1999-03-06 |
+------------+----------------------------------+
1 row in set (0.04 sec)
date_add(日期,interval 计算值 计算的字段)使用很灵活,使用时根据需求具体使用。