date_format(date, format) 函数用于以不同的格式显示日期/时间数据。
其中:
date 参数是合法的日期
format 规定日期/时间的输出格式
format 可以使用的格式有:
%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 位
实例1:将当前日期格式化为“****-**-** **:**:**”字符串
mysql> select date_format(now(), '%Y-%m-%d %H:%I:%S'); +----------------------------------------+ | date_format(now(),'%Y-%m-%d %H:%I:%S') | +----------------------------------------+ | 2019-11-08 22:10:02 | +----------------------------------------+ 1 row in set
实例2:将当前日期格式化为“****年**月**日 **时**分**秒”
mysql> select date_format(now(), '%Y年%m月%d日 %H时%I分%S秒'); +-------------------------------------------------+ | date_format(now(), '%Y年%m月%d日 %H时%I分%S秒') | +-------------------------------------------------+ | 2019年11月09日 11时11分02秒 | +-------------------------------------------------+ 1 row in set
unix_timestamp(date) 若无参数调用,则返回一个Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒数) 作为无符号整数。若用date 来调用UNIX_TIMESTAMP(),它会将参数值以'1970-01-01 00:00:00' GMT后的秒数的形式返回。date 可以是一个DATE 字符串、一个 DATETIME字符串、一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYMMDD格式的数字。
实例1:使用 UNIX_TIMESTAMP() 函数返回 UNIX 格式的时间戳,输入 SQL 语句和执行结果如下。
mysql> select UNIX_TIMESTAMP(); +------------------+ | UNIX_TIMESTAMP() | +------------------+ | 1573271228 | +------------------+ 1 row in set
实例2:使用 UNIX_TIMESTAMP 获取指定日期的时间戳。
mysql> select UNIX_TIMESTAMP('2019-11-01'); +------------------------------+ | UNIX_TIMESTAMP('2019-11-01') | +------------------------------+ | 1572537600 | +------------------------------+ 1 row in set mysql> select UNIX_TIMESTAMP('20191101'); +----------------------------+ | UNIX_TIMESTAMP('20191101') | +----------------------------+ | 1572537600 | +----------------------------+
str_to_date(str,format) 函数是将时间格式的字符串(str),按照所提供的显示格式(format)转换为DATETIME类型的值。
实例:将给定的日期字符串转换成日期对象
mysql> select str_to_date('2019-11-09', '%Y-%m-%d %H:%I:%S'); +------------------------------------------------+ | str_to_date('2019-11-09', '%Y-%m-%d %H:%I:%S') | +------------------------------------------------+ | 2019-11-09 00:00:00 | +------------------------------------------------+ 1 row in set mysql> select str_to_date('2019-11-09', '%Y-%m-%d'); +---------------------------------------+ | str_to_date('2019-11-09', '%Y-%m-%d') | +---------------------------------------+ | 2019-11-09 | +---------------------------------------+ 1 row in set
FROM_UNIXTIME(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(1509257408); +---------------------------+ | from_unixtime(1509257408) | +---------------------------+ | 2017-10-29 14:10:08 | +---------------------------+ 1 row in set mysql> select from_unixtime(1509257408,'%Y~%m~%d %H:%I:%S'); +-----------------------------------------------+ | from_unixtime(1509257408,'%Y~%m~%d %H:%I:%S') | +-----------------------------------------------+ | 2017~10~29 14:02:08 | +-----------------------------------------------+ 1 row in set