在MySQL中,无论是字符串转换为时间还是时间转换为字符串,都需要使用到时间格式:
%a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时 (00-23) %h 小时 (01-12) %I 小时 (01-12 %i 分钟,数值(00-59) %j 年的天 (001-366) %k 小时 (0-23) %l 小时 (1-12) %M 月名 %m 月,数值(00-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,与 %X 使用 %v 周 (01-53) 星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天 (0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位,与 %V 使用 %x 年,其中的星期一是周的第一天,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位
日期或时间转换为字符串:
SELECT DATE_FORMAT(NOW(),‘%Y-%m-%d %H:%i:%s‘) as date_str; +---------------------+ | date_str | +---------------------+ | 2019-06-10 11:36:10 | +---------------------+ SELECT TIME_FORMAT(NOW(),‘%H:%i:%s‘) as time_str; +----------+ | time_str | +----------+ | 11:36:31 | +----------+
字符串转时间:
SELECT str_to_date(‘2019-06-10 11:36:10‘,‘%Y-%m-%d %H:%i:%s‘) as dt; +---------------------+ | dt | +---------------------+ | 2019-06-10 11:36:10 | +---------------------+ ## 如果只希望获取时间 SELECT str_to_date(‘11:36:10‘,‘%H:%i:%s‘) as dt; +----------+ | dt | +----------+ | 11:36:10 | +----------+
不同国家使用不同的时间格式,可以使用get_format函数获取默认时间格式。
get_format函数用法:
get_format(date|time|datetime, ‘eur‘|‘usa‘|‘jis‘|‘iso‘|‘internal‘ );
如获取USA的默认时间格式
select get_format(date,‘usa‘) as usa_date_format, get_format(time,‘usa‘) as usa_time_format, get_format(datetime,‘usa‘) as usa_datetime_format; +-----------------+-----------------+---------------------+ | usa_date_format | usa_time_format | usa_datetime_format | +-----------------+-----------------+---------------------+ | %m.%d.%Y | %h:%i:%s %p | %Y-%m-%d %H.%i.%s | +-----------------+-----------------+---------------------+
原文:https://www.cnblogs.com/gaogao67/p/11001187.html