ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
DATE_FORMAT() > 将date或datetime类型值转换为任意的时间格式。 常用场景:某表有一个字段是更新时间,存储的是datetime类型,但前台展示时只需要显示 年-月-日(`xxxx-xx-xx`),这时候就可以用DATE_FORMAT() 处理,而不需要在结果集中用程序循环处理。 ~~~ `DATE_FORMAT(date,'%Y-%m-%d ')` ~~~ |格式 |形式|用例| |--|--|--| |%Y |数值(xxxx) | 1994 | |%y |数值(xx) | 94| |%m| 数值(00-12) | 08| |%c |数值(0-12) | 8| |%d |数值(00-31) | 03 | |%e |数值(0-31) | 31 当我们做日期比较的时候,对日期的格式一定要分清楚 ~~~ SELECT DATE_FORMAT( creat_time, '%Y-%m-%d %h:%i:%s' ) FROM tblName WHERE DATE_FORMAT( creat_time, '%Y-%m-%d %h:%i:%s' ) > '2016-8-31' ~~~ 如上比较会出错,因为我们的格式化时间中%m格式的月份为08并不是8,因此应将%m改为%c。 #### DATE_FORMAT(date,format) 根据format字符串格式化date值,format字符串中可用标志符:  %M 月名字(January……December)  %W 星期名字(Sunday……Saturday)  %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)  %Y 年, 数字, 4 位  %y 年, 数字, 2 位  %a 缩写的星期名字(Sun……Sat)  %d 月份中的天数, 数字(00……31)  %e 月份中的天数, 数字(0……31)  %m 月, 数字(01……12)  %c 月, 数字(1……12)  %b 缩写的月份名字(Jan……Dec)  %j 一年中的天数(001……366)  %H 小时(00……23)  %k 小时(0……23)  %h 小时(01……12)  %I 小时(01……12)  %l 小时(1……12)  %i 分钟, 数字(00……59)  %r 时间,12 小时(hh:mm:ss [AP]M)  %T 时间,24 小时(hh:mm:ss)  %S 秒(00……59)  %s 秒(00……59)  %p AM或PM  %w 一个星期中的天数(0=Sunday ……6=Saturday )  %U 星期(0……52), 这里星期天是星期的第一天  %u 星期(0……52), 这里星期一是星期的第一天  %% 字符% ~~~ mysql> select DATE_FORMAT('1997-10-04 22:23:00','%W %M %Y');   -> 'Saturday October 1997' mysql> select DATE_FORMAT('1997-10-04 22:23:00','%H:%i:%s');   -> '22:23:00' mysql> select DATE_FORMAT('1997-10-04 22:23:00','%D %y %a %d %m %b %j');   -> '4th 97 Sat 04 10 Oct 277' mysql> select DATE_FORMAT('1997-10-04 22:23:00','%H %k %I %r %T %S %w');   -> '22 22 10 10:23:00 PM 22:23:00 00 6' ~~~