MySQL STR_TO_DATE() 函数使用指南
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 后跟 AM 或 PM) |
%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解析str,STR_TO_DATE()函数将返回NULL。 - 如果其中任何一个参数为
NULL,STR_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 |
+---------------------------------------------------------+