sql >> Databasteknik >  >> RDS >> MariaDB

Hur STR_TO_DATE() fungerar i MariaDB

I MariaDB, STR_TO_DATE() är en inbyggd datum- och tidsfunktion som returnerar ett datum och tid, baserat på den givna datumsträngen och formatsträngen.

STR_TO_DATE() funktion är inversen av DATE_FORMAT() funktion.

Syntax

Syntaxen ser ut så här:

STR_TO_DATE(str,format)

Där str är datumsträngen och format är en formatsträng som anger formatet för datumsträngen.

Exempel

Här är ett exempel:

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

Resultat:

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

Formatsträngen består av ett antal formatspecifikationer som talar om för MariaDB hur datumet i det första argumentet formateras. Se MariaDB Format Strings för en lista över formatspecifikationer som kan användas i en formatsträng.

I det här exemplet är resultatet ett datumvärde, eftersom formatsträngen bara innehåller datumdelarna.

Returnera ett datum/tidsvärde

Här är ett exempel som returnerar ett datetime-värde:

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

Resultat:

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

I det här exemplet lades tidsdelen till, även om det första argumentet inte innehöll någon tidsdel.

Här är ett annat exempel som inkluderar en tidsdel i det första argumentet:

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

Resultat:

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

Här är en annan, där datumsträngen använder ett lösare tidsvärde:

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

Resultat:

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

Returnera ett tidsvärde

Här ändrar vi formatsträngen för att bara returnera tidsvärdet:

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

Resultat:

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

Olaglig datum-/tidssträng

Att skicka en olaglig datumsträng returnerar null med en varning.

Exempel:

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

Resultat:

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

Låt oss titta på varningen:

SHOW WARNINGS;

Resultat:

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

Argument saknas

Ringer STR_TO_DATE() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:

SELECT STR_TO_DATE();

Resultat:

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

Och ett annat exempel:

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

Resultat:

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

  1. Bestäm vilken MySQL-konfigurationsfil som används

  2. Hur man ändrar kompatibilitetsnivån för en databas med T-SQL

  3. MySQL:Sortera GROUP_CONCAT-värden

  4. Hur man skapar pivottabell i MySQL