sql >> Database teknologi >  >> RDS >> Mysql

Sådan får du tiden fra en streng i MySQL

Problem:

Du vil udtrække tiden fra en strengværdi i MySQL.

Eksempel:

Du har en strengværdi, der ser sådan ud:

‘Wednesday, 10 February 2021, 12:30:20’

Du vil kun udtrække tidsdelen '12:30:20'.

Løsning:

Her er forespørgslen:

SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");

Diskussion:

For at illustrere processen mere tydeligt, vil vi forklare dette i to dele.

Først skal vi konvertere strengen til en datoværdi. For at gøre dette bruger vi STR_TO_DATE fungere. Forespørgslen skal se sådan ud:

SELECT STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T”);

Formålet med STR_TO_DATE Funktionen er at konvertere en tekststreng til et datetime-format. Syntaksen for denne funktion er som følger:

STR_TO_DATE(string, format);

Det første argument for denne funktion er den streng, vi ønsker at konvertere. Det andet argument angiver formatet af strengen. I vores tilfælde bruger vi følgende parametre:

  • %W:Ugedagsnavn fra søndag til lørdag.
  • %d:Dag i måneden som en numerisk værdi fra 01 til 31.
  • %m:Måned som en numerisk værdi fra 01 til 12.
  • %Y:År som en 4-cifret numerisk værdi (åååå).
  • %T:Tid i 24-timers format (tt:mm:ss).

Du kan finde flere parametre i den officielle dokumentation for MySQL.

Resultatet af denne forespørgsel skulle se sådan ud:

2021-02-10 12:30:20

Nu har vi værdien i datatypen DATETIME. For kun at udtrække tiden, skal vi tilføje DATE_FORMAT funktion til forespørgslen ovenfor.

Den generelle syntaks for DATE_FORMAT Funktionen er:

DATE_FORMAT(date, format)

Så skulle vores forespørgsel se sådan ud:

SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");

I vores eksempel er det første argument i DATE_FORMAT funktion er den dato, der stammer fra STR_TO_DATE fungere. Det andet argument er formatet, som fungerer på samme måde som det gør i STR_TO_DATE fungere. Da vi kun har brug for tiden her, angiver vi "%T " som det andet argument.

%-tegnet er obligatorisk før formatangivelsens tegn. Vi skal angive formatet i nøjagtig samme rækkefølge, inklusive alle tegnsætningstegn.

Forespørgselsresultatet, vi ser nedenfor, er det forventede resultat.

12:30:20

Ved at bruge en kombination af disse to funktioner kan du udtrække enhver mulig kombination af dato og klokkeslæt fra en tekststreng.


  1. Opdatering af Salesforce fra Oracle®

  2. ODBC-opkald mislykkedes med lagret procedure - Send forespørgsel igennem

  3. Forespørg kun de første data fra en tabel

  4. Pandas opdatering sql