sql >> Database >  >> RDS >> MariaDB

Hoe STR_TO_DATE() werkt in MariaDB

In MariaDB, STR_TO_DATE() is een ingebouwde datum- en tijdfunctie die een datetime-waarde retourneert, gebaseerd op de gegeven datumtekenreeks en opmaakreeks.

De STR_TO_DATE() functie is het omgekeerde van de DATE_FORMAT() functie.

Syntaxis

De syntaxis gaat als volgt:

STR_TO_DATE(str,format)

Waar str is de datumstring, en format is een format string die het formaat van de date string specificeert.

Voorbeeld

Hier is een voorbeeld:

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

Resultaat:

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

De opmaakreeks bestaat uit een aantal opmaakspecificaties die MariaDB vertellen hoe de datum in het eerste argument is opgemaakt. Zie MariaDB Format Strings voor een lijst met formaatspecificaties die in een format string kunnen worden gebruikt.

In dit voorbeeld is het resultaat een datumwaarde, omdat de notatiereeks alleen de datumdelen bevat.

Retourneer een datum/tijd-waarde

Hier is een voorbeeld dat een datetime-waarde retourneert:

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

Resultaat:

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

In dit voorbeeld is het tijdsdeel toegevoegd, hoewel het eerste argument geen tijdsdeel bevatte.

Hier is nog een voorbeeld dat een tijdsdeel in het eerste argument bevat:

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

Resultaat:

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

Hier is er nog een, waarbij de datumreeks een lossere tijdwaarde gebruikt:

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

Resultaat:

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

Retourneer een tijdwaarde

Hier veranderen we de opmaakreeks om alleen de tijdwaarde terug te geven:

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

Resultaat:

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

Ongeldige datum/tijd-tekenreeks

Het doorgeven van een ongeldige datumreeks retourneert null met een waarschuwing.

Voorbeeld:

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

Resultaat:

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

Laten we eens kijken naar de waarschuwing:

SHOW WARNINGS;

Resultaat:

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

Ontbrekend argument

Bellen STR_TO_DATE() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT STR_TO_DATE();

Resultaat:

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

En nog een voorbeeld:

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

Resultaat:

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

  1. SQL AS:gebruik, voorbeelden en hoe u er het beste van kunt profiteren

  2. Tabel maken in procedure

  3. het creëren van geparametriseerde views in oracle11g

  4. 4 manieren om een ​​lijst met schema's te krijgen in SQL Server Agent (T-SQL)