涉及函数:
date_format(date,format), time_format(time,format)
能够把一个日期/时间转换成各种各样的字符串格式。
select DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s') time
select time_FORMAT(now(), '%H:%i:%s') time![]()
![]()
str_to_date(str, format)
把一些杂乱无章的字符串转换为日期格式。
select STR_TO_DATE('2020-01-01 14:08:10', '%Y-%m-%d %H:%i:%s') time
格式化列表:
- %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 位
to_days(date), from_days(days)
(日期、天数)转换函数
to_days(date): 给定一个日期date,返回一个天数(自0年以来的天数)。
from_days(days): 给定一个天数days,返回一个日期(从0年以来经过days天后日期)。
TO_DAYS()不适用于公历日历(1582)出现之前的值,因为它不考虑日历更改时丢失的日期。在1582年之前的日期(可能在其他地区的其他年份),此功能的结果不可靠。
SELECT TO_DAYS('2017-10-09'), TO_DAYS('17-10-09'),TO_DAYS('171009');
select to_days('0000-01-01'); 
select from_days(736976);
select from_days(365),from_days(366);
time_to_sec(time), sec_to_time(seconds)
(时间、秒)转换函数
select time_to_sec('01:00:05'); -- 3605
select sec_to_time(3605); -- '01:00:05'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'unix_timestamp(),unix_timestamp(date),from_unixtime(unix_timestamp),from_unixtime(unix_timestamp,format)
(Unix 时间戳、日期)转换函数
1 无参数调用:UNIX_TIMESTAMP()
返回值:自'1970-01-01 00:00:00'的到当前时间的秒数差
例子:SELECT UNIX_TIMESTAMP() => 1339123415
2 有参数调用:UNIX_TIMESTAMP(date)
其中date可以是一个DATE字符串,一个DATETIME字符串,一个TIMESTAMP或者一个当地时间的YYMMDD或YYYMMDD格式的数字
返回值:自'1970-01-01 00:00:00'与指定时间的秒数差
例子:SELECT UNIX_TIMESTAMP(20220101) =>1640966400
select from_unixtime(1355272360),unix_timestamp('2012-12-12 08:32:40');
select from_unixtime(1355272360),from_unixtime(1355272360,'%Y-%m-%d'),unix_timestamp('2012-12-12 08:32:40');![]()
版权声明:本文为szw906689771原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。