Spec-Zone.ru › MariaDB

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 не является корректной датой:

  • ALLOW_INVALID_DATES
  • NO_ZERO_DATE
  • NO_ZERO_IN_DATE

Доступные опции для 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                                                     |
+----------------------------------------------------------------+

См. также

  • DATE_FORMAT()
  • FROM_UNIXTIME()
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не просматривается предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом контенте, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API