Jak oddzielić DATĘ i CZAS od DATETIME w MySQL


84

Przechowuję pole DATETIME w tabeli. Każda wartość wygląda mniej więcej tak: 2012-09-09 06:57:12 .

Używam tej składni:

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

Teraz moje pytanie brzmi: w jaki sposób podczas pobierania danych można uzyskać osobno datę i godzinę , używając pojedynczego zapytania MySQL?

Data jak 2012-09-09 i czas jak 06:57:12 .


prawdopodobnie szukasz, DATE_FORMATa nie, DATEa TIMEponieważ poda Ci domyślną datę, jeśli szukasz czasu i domyślnego czasu, jeśli szukasz daty, zobacz moją odpowiedź poniżej.
John Woo,

Odpowiedzi:


128

Możesz to osiągnąć za pomocą DATE_FORMAT () ( kliknij link po więcej innych formatów )

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

SQLFiddle Demo


Cześć, jak uzyskać wartość? czy mogę użyć echo DATEONLYdo drukowania daty i echo TIMEONLYdo drukowania czasu? Albo co??
Miss Rosy,

@MissRosy tak, możesz użyć ich aliasu ( np. DATEONLY i TIMEONLY ), aby uzyskać żądane wartości.
John Woo,


@MissRosy, nie ma za co. Najlepsze jest to, że możesz go sformatować do dowolnej formy.
John Woo,

@ John..yes..Uwielbiam to :)
Miss Rosy

49

zgodnie z dokumentacją mysql, funkcja DATE () pobierze część daty z funkcji daty i godziny, a TIME () z części czasu. więc spróbuję:

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

17

Próbować:

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

to nie dostanie DATEi TIMEtylko to, co użytkownik prosi. Poda całą datę i godzinę z ustawieniami domyślnymi. SPRZEDAJ TEN LINK
John Woo

1
wygeneruje September, 09 2012 00:00:00-0400dla DATE i January, 01 1970 03:20:38-0500dla CZASU
John Woo

4
cóż, jak na zapytanie podaje 2012-09-09 jako date_part i 06:57:12 jako część czasową w mysql
Sudhir Bastakoti

@ Sudhir..Dziękuję bardzo za odpowiedź. To również jest poprawne, ale ... użycie DATE_FORMAT()uczyni Cię bardziej elastycznym.
Miss Rosy,

1
@MissRosy witamy i tak, powinieneś używać rozwiązania, które najbardziej pasuje i jest bardziej elastyczne .. :)
Sudhir Bastakoti


-2

Tylko do użytku na randkę
date("Y-m-d");

i tylko na czas
date("H:i:s");


6
hej, podasz rozwiązanie php, a nie sql :)
maq
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.