MySQL日期格式化相关说明

涉及函数:

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

格式化列表:

  1. %a  缩写星期名 
  2. %b  缩写月名 
  3. %c  月,数值 
  4. %D  带有英文前缀的月中的天 
  5. %d  月的天,数值(00-31) 
  6. %e  月的天,数值(0-31) 
  7. %f  微秒 
  8. %H  小时 (00-23) 
  9. %h  小时 (01-12) 
  10. %I  小时 (01-12) 
  11. %i  分钟,数值(00-59) 
  12. %j  年的天 (001-366) 
  13. %k  小时 (0-23) 
  14. %l  小时 (1-12) 
  15. %M  月名 
  16. %m  月,数值(00-12) 
  17. %p  AM 或 PM 
  18. %r  时间,12-小时(hh:mm:ss AM 或 PM) 
  19. %S  秒(00-59) 
  20. %s  秒(00-59) 
  21. %T  时间, 24-小时 (hh:mm:ss) 
  22. %U  周 (00-53) 星期日是一周的第一天 
  23. %u  周 (00-53) 星期一是一周的第一天 
  24. %V  周 (01-53) 星期日是一周的第一天,与 %X 使用 
  25. %v  周 (01-53) 星期一是一周的第一天,与 %x 使用 
  26. %W  星期名 
  27. %w  周的天 (0=星期日, 6=星期六) 
  28. %X  年,其中的星期日是周的第一天,4 位,与 %V 使用 
  29. %x  年,其中的星期一是周的第一天,4 位,与 %v 使用 
  30. %Y  年,4 位 
  31. %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版权协议,转载请附上原文出处链接和本声明。