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 WHERE
clausules. 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