sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer STR_TO_DATE() i MariaDB

I MariaDB, STR_TO_DATE() er en indbygget dato- og klokkeslætsfunktion, der returnerer en dato-tidsværdi baseret på den givne datostreng og formatstreng.

STR_TO_DATE() funktion er det omvendte af DATE_FORMAT() funktion.

Syntaks

Syntaksen ser sådan ud:

STR_TO_DATE(str,format)

Hvor str er datostrengen og format er en formatstreng, der angiver formatet på datostrengen.

Eksempel

Her er et eksempel:

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                                           |
+------------------------------------------------------+

Formatstrengen består af en række formatspecifikationer, der fortæller MariaDB, hvordan datoen i det første argument er formateret. Se MariaDB Format Strings for en liste over formatspecifikationer, der kan bruges i en formatstreng.

I dette eksempel er resultatet en datoværdi, fordi formatstrengen kun indeholder datodelene.

Returner en dato-tidsværdi

Her er et eksempel, der returnerer en datetime-værdi:

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 dette eksempel blev tidsdelen tilføjet, selvom det første argument ikke indeholdt nogen tidsdel.

Her er et andet eksempel, der inkluderer en tidsdel i det første argument:

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                                              |
+------------------------------------------------------------------+

Her er en anden, hvor datostrengen bruger en løsere tidsværdi:

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                                            |
+----------------------------------------------------------------+

Returnering af en tidsværdi

Her ændrer vi formatstrengen til kun at returnere tidsværdien:

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                                            |
+-----------------------------------------------------+

Ulovlig dato-/tidsstreng

Passering af en ulovlig datostreng returnerer null med en advarsel.

Eksempel:

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)

Lad os se på advarslen:

SHOW WARNINGS;

Resultat:

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

Manglende argument

Kalder STR_TO_DATE() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

SELECT STR_TO_DATE();

Resultat:

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

Og endnu et eksempel:

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. Hvordan installeres pdo driver i php docker image?

  2. SQLiteReadOnlyDatabaseException:forsøg på at skrive en skrivebeskyttet database (kode 1032)

  3. Sådan opretter du forbindelse til MySQL ved hjælp af PHP

  4. datagrip Kan ikke anvende ændringer Denne tabel er skrivebeskyttet. Ændringer i celleeditoren kan ikke anvendes