一、mysql中date和String之间的转换
1、date转换成String
DATE_FORMAT(date,format) date:需要转换的日期 format:格式化的样式
年: %Y 显示四位 : 2015 %y 只显示后两位 :15
月: %M 月份的英文显示:October %m 月份的阿拉伯显示:01-12 %b 月份的英文缩略显示:Oct %c 月份的阿拉伯显 示:1-12
日: %d 阿拉伯显示:00-31 %D 带有英文后缀:1st-31th %e 阿拉伯显示:1-31 %j 年的天:001-366
时: %H :00-23 %h:01-12 %I:01-12 %k:0-23 %l:1-12
分: %i:00-59
秒: %S:00-59 %s:00-59
微妙: %f
AM/PM:%p
12小时制时间:%r: 02:02:44 PM
24小时制时间: %T: 14:02:44
周: %W:周的英文显示 %w 周的阿拉伯显示 :0(星期日)-6(星期六) %a 周的英文缩略显示:Mon-
例如:DATE_FORMAT(now(),"%Y-%m-%d %T") 2018-10-23 13:10:50
DATE_FORMAT(now(),"%Y-%m-%d %H:%i:%s %p") 2018-10-01 17:10:52 PM
2、String转换成date
使用的函数:STR_TO_DATE(str,format) str:字符形式的日期 format:格式化样式
例如: STR_TO_DATE('2018-10-22',"%Y-%m-%d") 输出:2018-10-22(日期形式)
二、MySql获取当前时间的,前后时间的方法
SELECT NOW(),CURDATE(),CURTIME()
今天是2016年08月01日。使用date_sub函数:
date_sub('2016-08-01',interval 1 day) 表示 2016-07-31
date_sub('2016-08-01',interval 0 day) 表示 2016-08-01
date_sub('2016-08-01',interval -1 day) 表示 2016-08-02
date_sub(curdate(),interval 1 day) 表示 2016-07-31
date_sub(curdate(),interval -1 day) 2016-08-02
date_sub(curdate(),interval 1 month) 表示 2016-07-01
date_sub(curdate(),interval -1 month) 表示 2016-09-01
date_sub(curdate(),interval 1 year) 表示 2015-08-01
date_sub(curdate(),interval -1 year) 表示 2017-08-01