sql >> Database >  >> RDS >> Mysql

Hoe u de tijd kunt halen uit een string in MySQL

Probleem:

U wilt de tijd extraheren uit een tekenreekswaarde in MySQL.

Voorbeeld:

Je hebt een tekenreekswaarde die er als volgt uitziet:

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

U wilt alleen het tijdsdeel '12:30:20' extraheren.

Oplossing:

Dit is de vraag:

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

Discussie:

Om het proces duidelijker te illustreren, zullen we dit in twee delen uitleggen.

Eerst moeten we de string converteren naar een datumwaarde. Om dit te doen, gebruiken we de STR_TO_DATE functie. De zoekopdracht zou er als volgt uit moeten zien:

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

Het doel van de STR_TO_DATE functie is om een ​​tekstreeks om te zetten in een datetime-formaat. De syntaxis voor deze functie is als volgt:

STR_TO_DATE(string, format);

Het eerste argument van deze functie is de string die we willen converteren. Het tweede argument specificeert het formaat van de string. In ons geval gebruiken we de volgende parameters:

  • %W:naam van de weekdag van zondag tot zaterdag.
  • %d:Dag van de maand als een numerieke waarde van 01 tot 31.
  • %m:maand als een numerieke waarde van 01 tot 12.
  • %Y:Jaar als een 4-cijferige numerieke waarde (yyyy).
  • %T:Tijd in 24-uurs formaat (uu:mm:ss).

U kunt meer parameters vinden in de officiële documentatie voor MySQL.

Het resultaat van deze zoekopdracht zou er als volgt uit moeten zien:

2021-02-10 12:30:20

Nu hebben we de waarde in het gegevenstype DATETIME. Om alleen de tijd te extraheren, moeten we de DATE_FORMAT . toevoegen functie voor de bovenstaande vraag.

De algemene syntaxis van de DATE_FORMAT functie is:

DATE_FORMAT(date, format)

Dan zou onze vraag er als volgt uit moeten zien:

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

In ons voorbeeld is het eerste argument van de DATE_FORMAT functie is de datum die resulteert uit de STR_TO_DATE functie. Het tweede argument is het formaat, dat op dezelfde manier werkt als in de STR_TO_DATE functie. Omdat we hier alleen de tijd nodig hebben, specificeren we "%T " als het tweede argument.

Het %-teken is verplicht vóór de opmaakspecificatietekens. We moeten het formaat in exact dezelfde volgorde specificeren, inclusief alle leestekens.

Het zoekresultaat dat we hieronder zien, is het verwachte resultaat.

12:30:20

Door een combinatie van deze twee functies te gebruiken, kun je elke mogelijke combinatie van datum en tijd uit een tekstreeks halen.


  1. Beheer MySQL met phpMyAdmin op Ubuntu 9.10 (Karmic)

  2. Ondersteunt Oracle zoeken in volledige tekst?

  3. Hoe gebruik je een pakketconstante in SQL SELECT-instructie?

  4. Wat zijn de 6 belangrijkste componenten van Microsoft Access?