MySQL日期函数
1. 取得当天
mysql> SELECT curdate();
+------------+
| curdate() |
+------------+
| 2013-07-29 |
+------------+
2. 取得当前日期
mysql> select sysdate();
+---------------------+
| sysdate() |
+---------------------+
| 2016-05-30 13:58:17 |
+---------------------+
1 row in set
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2016-05-30 13:58:29 |
+---------------------+
1 row in set
3. 取得当前时间
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 13:54:31 |
+-----------+
1 row in set
4. 取得前一天
mysql> select date_sub(curdate(),interval 1 day);
+------------------------------------+
| date_sub(curdate(),interval 1 day) |
+------------------------------------+
| 2013-07-28 |
+------------------------------------+
5. 取得下一天
mysql> SELECT DATE_ADD(NOW(),INTERVAL 1 DAY);
+--------------------------------+
| DATE_ADD(NOW(),INTERVAL 1 DAY) |
+--------------------------------+
| 2016-05-31 14:09:16 |
+--------------------------------+
1 row in set
括号中为当天时间的前一天,如果统计前几天就将括号中的’1’改成相应的天数。如果要算月或年,直接将day改为month或year即可
6. 取得前一天的年份
mysql> SELECT YEAR(DATE_SUB(CURDATE(),INTERVAL 1 DAY));
+------------------------------------------+
| YEAR(DATE_SUB(CURDATE(),INTERVAL 1 DAY)) |
+------------------------------------------+
| 2013 |
+------------------------------------------+
7. SYSDATE()为:2016-05-30 周一
SELECT WEEK(SYSDATE()); -- 22
SELECT WEEKOFYEAR(SYSDATE()); -- 22
SELECT WEEKDAY(SYSDATE()); -- 0
SELECT DAY(SYSDATE()); -- 30
SELECT MONTH(SYSDATE()); -- 5
SELECT YEAR(SYSDATE()); -- 2016
8. date_sub()函数的例子
今天是2013年5月20日
date_sub('2012-05-25', INTERVAL 1 DAY) -- 表示 2012-05-24
date_sub('2012-05-25', INTERVAL 0 DAY) -- 表示 2012-05-25
date_sub('2012-05-25', INTERVAL - 1 DAY) -- 表示 2012-05-26
date_sub('2012-05-31', INTERVAL - 1 DAY) -- 表示 2012-06-01
date_sub(curdate(), INTERVAL 1 DAY) -- 表示 2013-05-19
date_sub(curdate(), INTERVAL - 1 DAY) -- 表示 2013-05-21
date_sub(curdate(), INTERVAL 1 MONTH) -- 表示 2013-04-20
date_sub(curdate(), INTERVAL - 1 MONTH) -- 表示 2013-06-20
date_sub(curdate(), INTERVAL 1 YEAR) -- 表示 2012-05-20
date_sub(curdate(), INTERVAL - 1 YEAR) -- 表示 2014-05-20