So trennen Sie DATE und TIME von DATETIME in MySQL


82

Ich speichere ein DATETIME- Feld in einer Tabelle. Jeder Wert sieht ungefähr so aus: 2012-09-09 06:57:12 .

Ich benutze diese Syntax:

   date("Y-m-d H:i:s");

Meine Frage ist nun, wie beim Abrufen der Daten Datum und Uhrzeit mithilfe der einzelnen MySQL-Abfrage getrennt abgerufen werden können.

Datum wie 2012-09-09 und Uhrzeit wie 06:57:12 .


wahrscheinlich suchen Sie DATE_FORMATund nicht DATEund TIMEweil es Ihnen Standarddatum gibt, wenn Sie nach Zeit suchen, und Standardzeit, wenn Sie nach Datum suchen, siehe meine Antwort unten.
John Woo

Antworten:


126

Sie können dies mit DATE_FORMAT () erreichen ( klicken Sie auf den Link für weitere andere Formate ).

SELECT DATE_FORMAT(colName, '%Y-%m-%d') DATEONLY, 
       DATE_FORMAT(colName,'%H:%i:%s') TIMEONLY

SQLFiddle-Demo


Hallo, wie bekomme ich den Wert? Kann ich echo DATEONLYzum Drucken des Datums und echo TIMEONLYzum Drucken der Uhrzeit verwenden? Oder was??
Fräulein Rosy

@MissRosy Ja, Sie können ihren Alias ​​( z. B. DATEONLY und TIMEONLY ) verwenden, um die gewünschten Werte zu erhalten.
John Woo


@ MissRosy du bist willkommen. Das Beste ist, Sie können es in jede gewünschte Form formatieren.
John Woo

@ John..yes..Ich liebe das Ding :)
Miss Rosy

49

Gemäß der MySQL-Dokumentation zieht die Funktion DATE () den Datumsteil eines Datums- / Uhrzeitfelds und TIME () für den Zeitabschnitt. also würde ich versuchen:

select DATE(dateTimeFeild) as Date, TIME(dateTimeFeild) as Time, col2, col3, FROM Table1 ...

17

Versuchen:

SELECT DATE(`date_time_field`) AS date_part, TIME(`date_time_field`) AS time_part FROM `your_table`

Dies wird nicht das DATEund TIMEnur als das bekommen, was der Benutzer fragt. Es gibt das gesamte Datum und die Uhrzeit mit den Standardeinstellungen an. VERKAUFEN SIE DIESEN LINK
John Woo

1
es wird September, 09 2012 00:00:00-0400für DATE und January, 01 1970 03:20:38-0500für TIME
John Woo

4
Nun, laut Abfrage gibt es 2012-09-09 als date_part und 06:57:12 als time part in mysql
Sudhir Bastakoti

@ Sudhir .. Vielen Dank für die Antwort. Dies ist auch richtig, aber ... DATE_FORMAT()macht Sie flexibler.
Fräulein Rosy

1
@ MissRosy willkommen, und ja, Sie sollten eine Lösung verwenden, die am besten passt und flexibler ist .. :)
Sudhir Bastakoti


-2

Nur zur Datumsverwendung
date("Y-m-d");

und nur für den zeitlichen Gebrauch
date("H:i:s");


6
Hey, du gibst eine PHP-Lösung, nicht SQL's :)
Maq
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.