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

Как работи STR_TO_DATE() в MariaDB

В MariaDB, STR_TO_DATE() е вградена функция за дата и час, която връща стойност за дата и час въз основа на дадения низ за дата и низ за формат.

STR_TO_DATE() функцията е обратна на DATE_FORMAT() функция.

Синтаксис

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

STR_TO_DATE(str,format)

Където str е низът за дата и format е низ за формат, който определя формата на низа за дата.

Пример

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

SELECT STR_TO_DATE('Monday, May 24, 2021', '%W, %M %e, %Y');

Резултат:

+------------------------------------------------------+
| STR_TO_DATE('Monday, May 24, 2021', '%W, %M %e, %Y') |
+------------------------------------------------------+
| 2021-05-24                                           |
+------------------------------------------------------+

Форматният низ се състои от редица спецификатори на формат, които казват на MariaDB как е форматирана датата в първия аргумент. Вижте MariaDB Format Strings за списък с спецификатори на формат, които могат да се използват във форматен низ.

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

Връщане на стойност за дата и час

Ето пример, който връща стойност за дата и час:

SELECT STR_TO_DATE('May 24, 2021', '%M %e, %Y %H:%i:%S');

Резултат:

+---------------------------------------------------+
| STR_TO_DATE('May 24, 2021', '%M %e, %Y %H:%i:%S') |
+---------------------------------------------------+
| 2021-05-24 00:00:00                               |
+---------------------------------------------------+

В този пример частта за време беше добавена, въпреки че първият аргумент не съдържаше времева част.

Ето още един пример, който включва времева част в първия аргумент:

SELECT 
STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S on %M %e, %Y');

Резултат:

+------------------------------------------------------------------+
| STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S on %M %e, %Y') |
+------------------------------------------------------------------+
| 2021-05-24 10:30:45                                              |
+------------------------------------------------------------------+

Ето още един, където низът за дата използва по-свободна стойност на времето:

SELECT 
STR_TO_DATE('10.30pm on May 24, 2021', '%H.%ipm on %M %e, %Y');

Резултат:

+----------------------------------------------------------------+
| STR_TO_DATE('10.30pm on May 24, 2021', '%H.%ipm on %M %e, %Y') |
+----------------------------------------------------------------+
| 2021-05-24 10:30:00                                            |
+----------------------------------------------------------------+

Върнете времева стойност

Тук променяме форматиращия низ, за ​​да върне само стойността на времето:

SELECT STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S');

Резултат:

+-----------------------------------------------------+
| STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S') |
+-----------------------------------------------------+
| 10:30:45                                            |
+-----------------------------------------------------+

Незаконен низ за дата/час

Предаването на незаконен низ за дата връща null с предупреждение.

Пример:

SELECT STR_TO_DATE('Humpday, May 26, 2021', '%W, %M %e, %Y');

Резултат:

+-------------------------------------------------------+
| STR_TO_DATE('Humpday, May 26, 2021', '%W, %M %e, %Y') |
+-------------------------------------------------------+
| NULL                                                  |
+-------------------------------------------------------+
1 row in set, 1 warning (0.009 sec)

Нека разгледаме предупреждението:

SHOW WARNINGS;

Резултат:

+---------+------+----------------------------------------------------------------------------+
| Level   | Code | Message                                                                    |
+---------+------+----------------------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: 'Humpday, May 26, 2021' for function str_to_date |
+---------+------+----------------------------------------------------------------------------+

Липсващ аргумент

Извикване на STR_TO_DATE() с грешен брой аргументи или без подаване на аргументи, води до грешка:

SELECT STR_TO_DATE();

Резултат:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STR_TO_DATE'

И още един пример:

SELECT STR_TO_DATE('Friday, 28 May 2021');

Резултат:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STR_TO_DATE'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 6 често срещани сценария за неуспехи за MySQL и MariaDB и как да ги поправите

  2. Как да настроите асинхронна репликация между MySQL Galera клъстери

  3. MySQL репликация с ProxySQL на WHM/cPanel сървъри:Част втора

  4. Преместване на база данни на MariaDB в криптирани и некриптирани състояния

  5. 3 начина да получите съпоставянето на сървъра в MariaDB