+-----------+--------+
| test_name | y_date |
+-----------+--------+
| 哈罗德    |     29 |
| 哈罗德    |     17 |
| 格温      |     13 |
| 班尼      |    110 |
+-----------+--------+
B. INTERVAL   n  day    day还可以替换为年月等
select now()+ INTERVAL 1 day;                 --表示明天
+-----------------------+
| now()+ INTERVAL 1 day |
+-----------------------+
| 2018-12-07 09:52:03   |
+-----------------------+
C. last_day()           括号内加个时间日期,表示月末
select last_day(now());            --表示月末
+-----------------+
| last_day(now()) |
+-----------------+
| 2018-12-31      |
+-----------------+
D. extract(day from now())      表示某月第几天,day 还可以替换为year,month 等
select date_sub(date(now()),interval extract(day from now()) - 1 day) as ‘month_firstday‘;           月初
+----------------+
| month_firstday |
+----------------+
| 2018-12-01     |
+----------------+
E. date_format() 把一个日期/时间转换成各种各样的字符串格式
select date_format(now(),‘%Y-%m-%d %h:%i:%s‘); %Y:年,% m:月, %M:英文月,%d: 日, %D :英文日, %h:小时,%H:24小时制,%i:分钟,%s:秒
+----------------------------------------+
| date_format(now(),‘%Y-%m-%d %h:%i:%s‘) |
+----------------------------------------+
| 2018-12-06 10:28:04                    |
+----------------------------------------+
F. str_to_date()  把一个字符串格式日期/时间转换成时间
select str_to_date(‘07.10.2017 08:09:30‘, ‘%m.%d.%Y %h:%i:%s‘) as st_to_d;
+---------------------+
| st_to_d             |
+---------------------+
| 2017-07-10 08:09:30 |
+---------------------+
1 row in set (0.06 sec)
G. date_add(),date_sub()   
select date_add(now(), interval 1 day) as add_day;         加一天, 表示明天
+---------------------+
| add_day             |
+---------------------+
| 2018-12-07 10:46:50 |
+---------------------+
1 row in set (0.00 sec)
select date_add(now(), interval 1 day) as add_day; 减一天,表示昨天
+---------------------+
| sub_day             |
+---------------------+
| 2018-12-05 10:48:48 |
+---------------------+
1 row in set (0.00 sec)
H. select week(now());            年中第几周
select quarter(now());         季度
select dayofweek(now());   一周中第几天
select dayofmonth(now());    一个月第几天
select dayofyear(now());         一年第几天
show variables like ‘lc_time_names‘;
select dayname(now()),monthname(now());          英文周几,英文月份
+----------------+------------------+
| dayname(now()) | monthname(now()) |
+----------------+------------------+
| Thursday       | December         |
+----------------+------------------+
set lc_time_names=‘zh_CN‘; 时间名称改为中文
+----------------+------------------+
| dayname(now()) | monthname(now()) |
+----------------+------------------+
| 星期四         | 十二月           |
+----------------+------------------+
原文:http://blog.51cto.com/11103985/2326881