mysql日期/时间转换函数
1、时间、秒转换函数:time_to_sec(time), sec_to_time(seconds)

select time_to_sec('01:00:05'); -- 3605 

 select sec_to_time(3605); -- '01:00:05'



2、日期、天数转换函数:to_days(date), from_days(days)

select to_days('0000-00-00'); -- null 

 select to_days('0000-01-01'); -- 1 

 select to_days('2008-08-08'); -- 733627 


 select from_days(0); -- '0000-00-00' 

 select from_days(366); -- '0001-01-01' 

 select from_days(733627); -- '2008-08-08'



3、字符串转换为日期函数:str_to_date(str, format)

select str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09 

 select str_to_date('08/09/08' , '%m/%d/%y'); -- 2008-08-09 

 select str_to_date('08.09.2008', '%m.%d.%Y'); -- 2008-08-09 

 select str_to_date('08:09:30', '%h:%i:%s'); -- 08:09:30 

 select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30



4、日期/时间转换为字符串函数:date_format(date,format), time_format(time,format)

select date_format('2008-08-08 22:23:00', '%W %M %Y'); -- Friday August 2008 

 select date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s'); -- 20080808222301 

 select time_format('22:23:01', '%H.%i.%s'); -- 22.23.01



5、拼凑日期、时间函数:makdedate(year,dayofyear), maketime(hour,minute,second)

select makedate(2001,31); -- '2001-01-31' 

 select makedate(2001,32); -- '2001-02-01' 

 select maketime(12,15,30); -- '12:15:30'



6、获得国家地区时间格式函数:get_format()
MySQL get_format() 语法:

get_format(date|time|datetime, 'eur'|'usa'|'jis'|'iso'|'internal'


et_format() 用法的全部示例:

select get_format(date,'usa') ; -- '%m.%d.%Y' 

 select get_format(date,'jis') ; -- '%Y-%m-%d' 

 select get_format(date,'iso') ; -- '%Y-%m-%d' 

 select get_format(date,'eur') ; -- '%d.%m.%Y' 

 select get_format(date,'internal') ; -- '%Y%m%d' 

 select get_format(datetime,'usa') ; -- '%Y-%m-%d %H.%i.%s' 

 select get_format(datetime,'jis') ; -- '%Y-%m-%d %H:%i:%s' 

 select get_format(datetime,'iso') ; -- '%Y-%m-%d %H:%i:%s' 

 select get_format(datetime,'eur') ; -- '%Y-%m-%d %H.%i.%s' 

 select get_format(datetime,'internal') ; -- '%Y%m%d%H%i%s' 

 select get_format(time,'usa') ; -- '%h:%i:%s %p' 

 select get_format(time,'jis') ; -- '%H:%i:%s' 

 select get_format(time,'iso') ; -- '%H:%i:%s' 

 select get_format(time,'eur') ; -- '%H.%i.%s' 

 select get_format(time,'internal') ; -- '%H%i%s'



附:日期转换修饰符。
%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), 这里星期一是星期的第一天
%% 一个文字“%”。%a - 星期几的简写
%A - 星期几的全写
%b - 月份的简写
%B - 月份的全写
%c - 日期时间06/12/05 11:15:10
%C - 世纪时间
%d - 一个月的第几号(从 01 到 31)
%D - 同 %m/%d/%y
%e - 一个月的第几号,号为单数则前面加一空格 (从 1 到 31)
%g - 世纪
%G - 世纪 [0000,9999]
%h - 同%b
%H - 24小时形式的小时(从00到23)
%I - 12小时形式的小时(从01到 12)
%j - 一年中的第几天(从 001 到 366)
%k - 24小时形式的小时,单数字前面加空格. (从 0 到 23)
%l - 12小时形式的小时,单数字前面加空格.(range 1 to 12)
%m - 月份 (range 01 to 12)
%M - 分
%n - 换行符
%p - 显示早上还是下午`am' 或 `pm'
%r - a.m. 或 p.m.形式的时间
%R - 24小时形式的时间
%S - 秒
%t - tab符号
%T - 同%H:%M:%S
%u - 用 [1,7],表示星期几
%U - 计算是该年的第几个星期,从该年的第一个星期天开始计算
%V - 计算是该年的第几个星期, 从 01 到 53, 第一个星期必须至少有4天在这一年, 星期天作为这个星期的第一天
%w - 用数字的形式表示是星期的第几天, 星期天 为 0
%W - 用数字的形式是该年的第几个星期,从该年的第一个星期一开始计算
%x - 显示日期:月/日/年
%X - 显示时间:小时:分钟:秒
%y - 不包括世纪的年份
%Y - 包括世纪的年份
%Z - 时区
%% - 输出%