STR_TO_DATE
Синтаксис
STR_TO_DATE(str,format)
Описание
Это обратная функция к DATE_FORMAT() функции. Она принимает строку str и строку формата format. STR_TO_DATE() возвращает значение DATETIME, если строка формата содержит как части даты, так и времени, или значение DATE или TIME, если строка содержит только части даты или времени.
Значения даты, времени или даты и времени, содержащиеся в str, должны быть заданы в формате, указанном в строке формата. Если str содержит некорректное значение даты, времени или даты и времени, STR_TO_DATE() возвращает NULL. Некорректное значение также приводит к предупреждению.
При определенных настройках SQL_MODE может также генерироваться ошибка, если str не является корректной датой:
Доступные опции для STR_TO_DATE(), а также для обратной функции DATE_FORMAT() и функции FROM_UNIXTIME():
| Опция | Описание |
|---|---|
%a |
Сокращенное название дня недели в текущем языковом окружении (Переменная lc_time_names). |
%b |
Сокращенное название месяца в текущем языковом окружении. Для en_US это одно из: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov или Dec. |
%c |
Месяц с 1 или 2 цифрами. |
%D |
День с суффиксом 'th', 'nd', 'st' или 'rd' (например, 1-е, 2-ое, 3-ье...). |
%d |
День с 2 цифрами. |
%e |
День с 1 или 2 цифрами. |
%f |
Микросекунды 6 цифр. |
%H |
Час с 2 цифрами от 00 до 23. |
%h |
Час с 2 цифрами от 01 до 12. |
%I |
Час с 2 цифрами от 01 до 12. |
%i |
Минута с 2 цифрами. |
%j |
День года (001-366) |
%k |
Час с 1 цифрой от 0 до 23. |
%l |
Час с 1 цифрой от 1 до 12. |
%M |
Полное название месяца в текущем языковом окружении (Переменная lc_time_names). |
%m |
Месяц с 2 цифрами. |
%p |
AM/PM в соответствии с текущим языковым окружением (Переменная lc_time_names). |
%r |
Время в 12-часовом формате, за которым следуют AM/PM. Сокращенно '%I:%i:%S %p'. |
%S |
Секунды с 2 цифрами. |
%s |
Секунды с 2 цифрами. |
%T |
Время в 24-часовом формате. Сокращенно '%H:%i:%S'. |
%U |
Номер недели (00-53), когда первый день недели – воскресенье. |
%u |
Номер недели (00-53), когда первый день недели – понедельник. |
%V |
Номер недели (01-53), когда первый день недели – воскресенье. Используется с %X. |
%v |
Номер недели (01-53), когда первый день недели – понедельник. Используется с %x. |
%W |
Полное название дня недели в текущем языковом окружении (Переменная lc_time_names). |
%w |
День недели. 0 = воскресенье, 6 = суббота. |
%X |
Год с 4 цифрами, когда первый день недели – воскресенье. Используется с %V. |
%x |
Год с 4 цифрами, когда первый день недели – понедельник. Используется с %v. |
%Y |
Год с 4 цифрами. |
%y |
Год с 2 цифрами. |
%# |
Для str_to_date(), пропускает все цифры. |
%. |
Для str_to_date(), пропускает все знаки препинания. |
%@ |
Для str_to_date(), пропускает все буквенные символы. |
%% |
Буквальный символ %. |
Примеры
SELECT STR_TO_DATE('Wednesday, June 2, 2014', '%W, %M %e, %Y');
+---------------------------------------------------------+
| STR_TO_DATE('Wednesday, June 2, 2014', '%W, %M %e, %Y') |
+---------------------------------------------------------+
| 2014-06-02 |
+---------------------------------------------------------+
SELECT STR_TO_DATE('Wednesday23423, June 2, 2014', '%W, %M %e, %Y');
+--------------------------------------------------------------+
| STR_TO_DATE('Wednesday23423, June 2, 2014', '%W, %M %e, %Y') |
+--------------------------------------------------------------+
| NULL |
+--------------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)
SHOW WARNINGS;
+---------+------+-----------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: 'Wednesday23423, June 2, 2014' for function str_to_date |
+---------+------+-----------------------------------------------------------------------------------+
SELECT STR_TO_DATE('Wednesday23423, June 2, 2014', '%W%#, %M %e, %Y');
+----------------------------------------------------------------+
| STR_TO_DATE('Wednesday23423, June 2, 2014', '%W%#, %M %e, %Y') |
+----------------------------------------------------------------+
| 2014-06-02 |
+----------------------------------------------------------------+
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/str_to_date/