Mysql
 sql >> база данни >  >> RDS >> Mysql

STR_TO_DATE() Примери – MySQL

MySQL STR_TO_DATE() функцията ви позволява да изградите стойност за дата от различните части на датата.

Когато използвате тази функция, вие предоставяте низ от различните части за дата и втори аргумент, който определя формата, в който е предоставена датата.

Синтаксис

Синтаксисът е така:

STR_TO_DATE(str,format)

Където str е низът, който съдържа частите за дата, а formatът е низът за форматиране (определя как str аргументът е форматиран).

Пример 1 – Основна употреба

Ето пример за демонстрация.

SELECT STR_TO_DATE('31,12,1999','%d,%m,%Y');

Резултат:

+----------------------------------------+| STR_TO_DATE('31,12,1999','%d,%m,%Y') |+-------------------------- -----------+| 1999-12-31 |+----------------------------------------+

Пример 2 – Ред на форматиращия низ

Низът за формат трябва да съответства на стойностите, предоставени в низа за дата. Например, не можете да направите следното:

SELECT STR_TO_DATE('31,12,1999','%m,%d,%Y');

Резултат:

+----------------------------------------+| STR_TO_DATE('31,12,1999','%m,%d,%Y') |+-------------------------- -----------+| NULL |+----------------------------------------+

Причината, поради която това не работи, е, че се опитваме да принудим месеца да има стойност от 31, но има само 12 месеца в годината. Така че това би довело до невалидна стойност на датата.

Ето защо ще трябва да внимавате, когато използвате тази функция, особено когато стойността на деня е 12 или по-малко, в противен случай може да се окажете, че стойностите на месеца и деня се разменят, без да забележите това.

Например, така:

SELECT STR_TO_DATE('07,12,1999','%d,%m,%Y'), STR_TO_DATE('07,12,1999','%m,%d,%Y'); 

Резултат:

+----------------------------------------+------- -------------------------------+| STR_TO_DATE('07,12,1999','%d,%m,%Y') | STR_TO_DATE('07,12,1999','%m,%d,%Y') |+-------------------------- -----------+---------------------------------------------- +| 1999-12-07 | 1999-07-12 |+----------------------------------------+---- ----------------------------------+

В този случай не получаваме стойност NULL, както в предишния пример, защото и двете 07 и 12 може да бъде ден или месец.

Пример 3 – Съвпадение на низа за формат

Дори ако низът за формат е в правилния ред, той също трябва да съвпада с формата на частите за дата, предоставени в първия аргумент.

Така например, не можете да направите това:

SELECT STR_TO_DATE('31 декември 1999 г.','%d,%m,%Y');

Резултат:

+---------------------------------------+| STR_TO_DATE('31 декември 1999 г.','%d,%m,%Y') |+---------------------------- ------------+| NULL |+-----------------------------------+

В този случай ще трябва да направим нещо подобно:

SELECT STR_TO_DATE('31 декември 1999 г.','%d %M, %Y');

Резултат:

+-----------------------------------+| STR_TO_DATE('31 декември 1999 г.','%d %M, %Y') |+---------------------------- ------------+| 1999-12-31 |+-------------------------------------------------+ 

Пример 4 – Използване на функцията GET_FORMAT()

Можете също да предадете GET_FORMAT() функция като втори аргумент.

Ето един пример.

SELECT STR_TO_DATE('12.07.1999', GET_FORMAT(DATE, 'САЩ'));

Резултат:

+------------------------------------------------------- ------+| STR_TO_DATE('12.07.1999', GET_FORMAT(DATE, 'САЩ')) |+------------------------------ ---------------------+| 1999-12-07 |+--------------------------------------------------- ---------+

Пример 5 – Стойности за дата и час

Можете също да използвате тази функция, за да върнете стойност за час или дата и час.

Ето пример за използване на стойност за дата и час.

SELECT STR_TO_DATE('31/12/1999 09:30:17','%d/%m/%Y %H:%i:%s');

Резултат:

+------------------------------------------------------- ----------+| STR_TO_DATE('31/12/1999 09:30:17','%d/%m/%Y %H:%i:%s') |+-------------- ------------------------------------------------+| 1999-12-31 09:30:17 |+---------------------------------------------- ------------------+

Указатели на низови формати

Следните спецификатори могат да се използват във форматния низ. В допълнение към тях можете също да използвате литерални низове във форматния низ.

Спецификатор Описание
%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 Име на месеца (Jan ..December )
%m Месец, цифров (00 ..12 )
%p AM или PM
%r Време, 12 часа (hh:mm:ss последвано от AM или PM )
%S Секунди (00 ..59 )
%s Секунди (00 ..59 )
%T Време, 24 часа (hh:mm:ss )
%U Седмица (00 ..53 ), където неделя е първият ден от седмицата; WEEK() режим 0
%u Седмица (00 ..53 ), където понеделник е първият ден от седмицата; WEEK() режим 1
%V Седмица (01 ..53 ), където неделя е първият ден от седмицата; WEEK() режим 2; използва се с %X
%v Седмица (01 ..53 ), където понеделник е първият ден от седмицата; WEEK() режим 3; използва се с %x
%W Име на деня от седмицата (Sunday ..Sat )
%w Ден от седмицата (0 =Неделя..6 =събота)
%X Година за седмицата, в която неделя е първият ден от седмицата, число, четири цифри; използва се с %V
%x Година за седмицата, където понеделник е първият ден от седмицата, число, четири цифри; използва се с %v
%Y Година, число, четири цифри
%y Година, число (две цифри)
%% Литерал % знак
%x x , за всеки „x ” не е изброено по-горе

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на MySQL клиентски приложения

  2. MySQL:Транзакции срещу заключващи таблици

  3. Как да инсталирате MySQL Workbench на Windows

  4. Дублиране на MySQL таблица, индекси и данни

  5. Как да създадете връзки в MySQL