Hoe een tekenreeks converteren naar datum in MySQL?

Ik heb een -kolom kolom die fungeert als een datum en ik wil het selecteren als een DATE.

Is het mogelijk?

Mijn voorbeeldgegevensformaat zou zijn:

month/day/year– & gt; 12/31/2011


Antwoord 1, Autoriteit 100%

Zoals werd verteld bij mysql Met behulp van een tekenkolom met datumtekst als een datumveld kunt u

doen

SELECT  STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM    yourtable

U kunt ook deze datumsnaren verwerken in WHEREclausules. Bijvoorbeeld

SELECT whatever
  FROM yourtable
 WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAY

U kunt alle soorten datum / tijdlay-outs op deze manier aan. Raadpleeg de specificaties voor formaat voor De DATE_FORMAT()-functie om te zien wat u in de tweede parameter van STR_TO_DATE()kunt plaatsen.


Antwoord 2, Autoriteit 20%

STR_TO_DATE('12/31/2011', '%m/%d/%Y')

Antwoord 3, Autoriteit 4%

http: //dev.mySQL. COM / DOC / REFMAN / 5.5 / EN DATE-EN-TIME-FUNCTIONS.HTML
Gebruik de bovenstaande pagina om meer functies in MySQL

te verwijzen

SELECT  STR_TO_DATE(StringColumn, '%d-%b-%y')
FROM    table

Zeg bijvoorbeeld gebruik de onderstaande query om uitvoer

te krijgen

SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table

Gebruik de onderstaande link

http: // dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format


Antwoord 4, Autoriteit 4%

Hier zijn nog twee voorbeelden.

Om de dag, maand en jaar uit te voeren, kunt u gebruiken:

select STR_TO_DATE('14/02/2015', '%d/%m/%Y');

die produceert:

2015-02-14

Om de tijd ook uit te voeren, kunt u gebruiken:

select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');

die produceert:

2017-02-14 23:38:12


Antwoord 5

Het volgende illustreert de syntaxis van de STR_TO_DATE()functie:

STR_TO_DATE(str,fmt);

De STR_TO_DATE()converteert de STR-string in een datumwaarde op basis van de FMT-formaatstring. De STR_TO_DATE()-functie kan een Datum , Time , of DateTime -waarde op basis van de invoer- en formaatsnaren retourneren . Als de invoerring illegaal is, retourneert de STR_TO_DATE()functie null.

De volgende verklaring converteert een tekenreeks in een datum waarde.

SELECT STR_TO_DATE('21,5,2013','%d,%m,%Y');

Op basis van de notatiereeks ‘%d, %m, %Y’scant de functie STR_TO_DATE()de ‘21,5,2013’ invoertekenreeks.

  • Eerst probeert het een overeenkomst te vinden voor de %d-indelingsspecificatie, die
    is een dag van de maand (01…31), in de invoerreeks. Omdat de
    nummer 21 komt overeen met de %d specificatie, de functie heeft 21 als de
    dagwaarde.
  • Ten tweede, omdat de komma (,) letterlijk in de opmaakreeks
    overeenkomt met de komma in de invoerreeks, blijft de functie
    controleer de tweede formaatspecificatie %m , wat een maand is (01…12), en
    vindt dat het getal 5 overeenkomt met de indelingsspecificatie %m. Het
    neemt het getal 5 als maandwaarde.
  • Ten derde, na het matchen van de tweede komma (,), de STR_TO_DATE()
    functie blijft een overeenkomst vinden voor de derde formaatspecificatie %Y ,
    dat is een jaartal van vier cijfers, bijvoorbeeld 2012,2013, enz., en het duurt de
    nummer 2013 als jaarwaarde.

De functie STR_TO_DATE()negeert extra tekens aan het einde van de invoerreeks wanneer de invoerreeks wordt geparseerd op basis van de opmaakreeks. Zie het volgende voorbeeld:

SELECT STR_TO_DATE('21,5,2013 extra characters','%d,%m,%Y');

Meer details: Referentie

Other episodes