sql >> Databáze >  >> RDS >> MariaDB

Jak STR_TO_DATE() funguje v MariaDB

V MariaDB, STR_TO_DATE() je vestavěná funkce data a času, která vrací hodnotu datetime na základě daného řetězce data a formátovacího řetězce.

STR_TO_DATE() funkce je inverzní k DATE_FORMAT() funkce.

Syntaxe

Syntaxe vypadá takto:

STR_TO_DATE(str,format)

Kde str je řetězec data a format je formátovací řetězec, který určuje formát řetězce data.

Příklad

Zde je příklad:

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

Výsledek:

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

Formátovací řetězec se skládá z řady specifikátorů formátu, které MariaDB říkají, jak je formátováno datum v prvním argumentu. Viz MariaDB Format Strings pro seznam specifikátorů formátu, které lze použít ve formátovacím řetězci.

V tomto příkladu je výsledkem hodnota data, protože formátovací řetězec obsahuje pouze části data.

Vrátí hodnotu Datetime

Zde je příklad, který vrací hodnotu datetime:

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

Výsledek:

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

V tomto příkladu byla přidána časová část, i když první argument neobsahoval žádnou časovou část.

Zde je další příklad, který zahrnuje časovou část v prvním argumentu:

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

Výsledek:

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

Zde je další, kde řetězec data používá volnější časovou hodnotu:

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

Výsledek:

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

Vrátit časovou hodnotu

Zde změníme formátovací řetězec tak, aby vrátil pouze časovou hodnotu:

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

Výsledek:

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

Neplatný řetězec data/času

Předání neplatného řetězce data vrátí null s varováním.

Příklad:

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

Výsledek:

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

Podívejme se na varování:

SHOW WARNINGS;

Výsledek:

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

Chybí argument

Volání STR_TO_DATE() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT STR_TO_DATE();

Výsledek:

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

A další příklad:

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

Výsledek:

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

  1. Jak LocalTimeStamp() funguje v PostgreSQL

  2. Jak přidat pouze odlišné hodnoty pomocí SQLite Sum()

  3. Parametrizovat název tabulky v .NET/SQL?

  4. Jak se připojit k databázi AWS MySQL / MariaDB RDS nebo EC2 z MySQL WorkBench