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.