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 |
+---------------------------------------------------------+