【MYSQL】mysql的日期格式化函数:DATE_FORMAT和UNIX_TIMESTAMP和FROM_UNIXTIME

林氏智造 于 2013-12-05 发布 4019 人已阅

【mysql时间函数能处理的问题】
可以解决时间戳和字符串形式的时间相互转换,也可以根据字符串形式的时间提取相关年,月,日,星期等相关数据

【函数介绍】
DATE_FORMAT(date,format)
依照 format 字符串格式化 date 值

下面的修饰符可被用于 format 字符串中:  
修饰符  含义  
%M       月的名字 (January..December)  
%W      星期的名字 (Sunday..Saturday)  
%D       有英文后缀的某月的第几天 (0th, 1st, 2nd, 3rd, etc.)
 %Y       年份,数字的,4 位  
%y         年份,数字的,2 位  
%X        周值的年份,星期日是一个星期的第一天,数字的,4 位,与 ‘%V’ 一同使用  
%x         周值的年份,星期一是一个星期的第一天,数字的,4 位,与 ‘%v’ 一同使用
 %a       缩写的星期名 (Sun..Sat)  
%d        月份中的天数,数字的 (00..31)
 %e       月份中的天数,数字的 (0..31)  
%m       月,数字的 (00..12)  
%c         月,数字的 (0..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      星期 (00..53),星期日是一个星期的第一天  
%u       星期 (00..53),星期一是一个星期的第一天  
%V       星期 (01..53),星期日是一个星期的第一天。与 ‘%X’ 一起使用  
%v        星期 (01..53),星期一是一个星期的第一天。与 ‘%x’ 一起使用  
%%      一个字母 “%”

UNIX_TIMESTAMP(date)
如果调用时没有参数,以无符号的整数形式返回一个 Unix 时间戳(从 ‘1970-01-01 00:00:00′ GMT 开始的秒数)。
如果以一个参数 date 调用 UNIX_TIMESTAMP(),它将返回该参数值从 ‘1970-01-01 00:00:00′ GMT 开始经过的秒数值。
date 可以是一个 DATE 字符串,一个 DATETIME 字符串,一个 TIMESTAMP,或者以一个 YYMMDD 或 YYYYMMDD 显示的本地时间:  
mysql> SELECT UNIX_TIMESTAMP();  -> 882226357  
mysql> SELECT UNIX_TIMESTAMP(’1997-10-04 22:23:00′);  -> 875996580  
当 UNIX_TIMESTAMP 被用于一个 TIMESTAMP 列时,函数直接返回一个内部的时间戳值,而不进行一个隐含地 “string-to-unix-timestamp” 转换。如果你传递一个超出范围的日期参数给 UNIX_TIMESTAMP() ,它将返回 0,但是请注意,MySQL 对其仅仅进行基本的检验(年范围 1970-2037,月份 01-12,日期 01-31)。 如果你希望减去 UNIX_TIMESTAMP() 列,你应该需要将结果强制转换为一有符号整数。

FROM_UNIXTIME(unix_timestamp [,format])
以 ‘YYYY-MM-DD HH:MM:SS’ 或 YYYYMMDDHHMMSS 格式返回一个 unix_timestamp 参数值,返回值的形式取决于该函数使用于字符串还是数字语境。 如果 format 给出,返回值依 format 字符串被格式。format 可以包含与 DATE_FORMAT() 函数同样的修饰符  
mysql> SELECT FROM_UNIXTIME(875996580);  -> ‘1997-10-04 22:23:00′  
mysql> SELECT FROM_UNIXTIME(875996580) + 0;  -> 19971004222300   mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),  ‘%Y %D %M %h:%i:%s %x’);   -> ‘1997 23rd December 03:43:30 1997′

【写在最后】
以上都是笔记,全属于整理资料,版权归原创所有

标签

您可能感兴趣的文章

微信支付开发经验总结

微信的文档基本都是看得头大,经过一次微信支付项目的折腾总结了开发微信支付的思路并记录了开发过程中遇到的问题

根据不同的访问终端跳转相应URL

当网站存在pc版和手机版的时候,我们最想就是通过在不同终端输入域名就可以访问最合适版本的页面,这时候就需要程序判断终端类型来解决。

【PHP】一个中文转拼音类

在百度上收集了一个把中文转换成拼音的类,用了段时间感觉不错,在URL上出现中文拼音不知道有利于SEO这点百度上有些文章提到过,用此类就可以解决中文转拼音罗。