目录

MySQL STR_TO_DATE() 函数

MySQLSTR_TO_DATE()函数将指定的字符串根据指定日期格式转为日期/时间。STR_TO_DATE()函数与DATE_FORMAT()函数是相反的。STR_TO_DATE()语法这是MySQLSTR_TO_DATE()函数的语法:STR_TO_DATE(str,format)参数str必需

MySQL STR_TO_DATE() 函数将指定的字符串根据指定日期格式转为日期/时间。 STR_TO_DATE() 函数与 DATE_FORMAT() 函数是相反的。

STR_TO_DATE() 语法

这是 MySQL STR_TO_DATE() 函数的语法:

STR_TO_DATE(str, format)

参数

str
必需的。需要格式化成日期的字符串。
format
必需的。格式化字符串。

下表整理了 format 中可采用的格式化符号:

符号 说明
%a 星期的缩写 (Sun..Sat)
%b 月份的缩写 (Jan..Dec)
%c 月份数字 (0..12)
%D 带有英语前缀的月份中的每天 (0th, 1st, 2nd, 3rd, …)
%d 月份中的每天的两位数字表示 (00..31)
%e 月份中的每天的数字表示 (0..31)
%f 微秒 (000000..999999)
%H 小时 (00..23)
%h 小时 (01..12)
%I 小时 (01..12)
%i 分钟 (00..59)
%j 一年中的每天 (001..366)
%k 小时 (0..23)
%l 小时 (1..12)
%M 月份名称 (January..December)
%m 两位数字月份 (00..12)
%p AM 或者 PM
%r 十二小时制时间 ( hh:mm:ss 后跟 AMPM)
%S 秒 (00..59)
%s 秒 (00..59)
%T 二十四小时制时间 (hh:mm:ss)
%U 一年中的星期 (00..53), 每周的开始是星期天; WEEK() 函数中的 mode 0
%u 一年中的星期 (00..53), 每周的开始是星期一; WEEK() 函数中的 mode 1
%V 一年中的星期 (01..53), 每周的开始是星期天; WEEK() 函数中的 mode 2, 用于 %X
%v 一年中的星期 (01..53), 每周的开始是星期一; WEEK() 函数中的 mode 3, 用于 %x
%W 星期的名称 (Sunday..Saturday)
%w 星期中的每天 (0=星期天..6=星期六)
%X 一年中的星期,每周的开始是星期天,四位数字,用于 %V
%x 一年中的星期,每周的开始是星期一,四位数字,用于 %v
%Y 四位数字年份
%y 两位数字年份
%% 转义 %
%x x, 上面为列举的其他字符

返回值

STR_TO_DATE() 函数返回一个日期/时间/日期时间。

  • 如果不能按照 format 解析 strSTR_TO_DATE() 函数将返回 NULL
  • 如果其中任何一个参数为 NULLSTR_TO_DATE() 函数将返回 NULL

STR_TO_DATE() 示例

这里是几个 STR_TO_DATE() 函数的示例。

示例 1: 转为日期

SELECT STR_TO_DATE('2022/02/01', '%Y/%m/%d');
+---------------------------------------+
| STR_TO_DATE('2022/02/01', '%Y/%m/%d') |
+---------------------------------------+
| 2022-02-01                            |
+---------------------------------------+

示例 2: 转为日期时间

SELECT STR_TO_DATE('2022/02/01 10:10:10', '%Y/%m/%d %H:%i:%S');
+---------------------------------------------------------+
| STR_TO_DATE('2022/02/01 10:10:10', '%Y/%m/%d %H:%i:%S') |
+---------------------------------------------------------+
| 2022-02-01 10:10:10                                     |
+---------------------------------------------------------+