MySQL时间函数

A. timestampdiff() 传三个参数,第一个时间类型如年,月,日,第二个开始时间,第三个结束时间
select test_name, timestampdiff(YEAR,create_time,end_time) y_date from test_table; --计算时间

成都创新互联是一家专业提供兰陵企业网站建设,专注与成都网站建设、网站制作、html5、小程序制作等业务。10年已为兰陵众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

+-----------+--------+
| 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()) |
+----------------+------------------+
| 星期四 | 十二月 |
+----------------+------------------+


文章名称:MySQL时间函数
本文路径:http://azwzsj.com/article/geepig.html