MySQL'de DATETIME'dan DATE ve TIME nasıl ayrılır


84

Bir Tabloda DATETIME alanı depoluyorum . Her değer şuna benzer: 2012-09-09 06:57:12 .

Bu sözdizimini kullanıyorum:

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

Şimdi sorum şu, verileri alırken , tek bir MySQL sorgusunu kullanarak hem tarih hem de saati ayrı ayrı nasıl alabilirim ?

Gibi tarihi 2012-09-09 gibi ve zaman 06:57:12 .


Muhtemelen arıyor DATE_FORMATve değilsin DATEve TIMEeğer tarih arıyorsanız zaman ve varsayılan saat arıyorsanız varsayılan tarih vereceği için, aşağıdaki cevabıma bakın.
John Woo

Yanıtlar:


128

Bunu kullanarak elde edebilirsiniz DATE_FORMAT () ( daha fazla diğer formatlar için bağlantıyı tıklayın )

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

SQLFiddle Demo


Merhaba, Değer nasıl alınır? echo DATEONLYTarihi echo TIMEONLYyazdırmak ve saati yazdırmak için kullanabilir miyim ? Ya da ne??
Miss Rosy

@MissRosy evet, istediğiniz değerleri elde etmek için takma adlarını ( örneğin TARİH ve ZAMANLI ) kullanabilirsiniz.
John Woo


@MissRosy rica ederim. en iyi şey, istediğiniz herhangi bir biçimde biçimlendirebilmenizdir.
John Woo

@ John..yes..O şeyi seviyorum :)
Miss Rosy

49

mysql belgelerine göre, DATE () işlevi bir datetime feild'in tarih bölümünü ve saat bölümü için TIME () öğesini çekecektir. bu yüzden deneyecektim:

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

17

Deneyin:

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

Bu almazsınız DATEve TIMEsadece kullanıcı soran ne kadar. Tüm tarih ve saati varsayılanları ile verecektir. BU BAĞLANTIYI SATIN
John Woo

1
o üretecektir September, 09 2012 00:00:00-0400için TARİH ve January, 01 1970 03:20:38-0500için TIME
John Woo

4
ayrıca, sorguya göre mysql'de tarih_bölüm olarak 2012-09-09 ve saat bölümü olarak 06:57:12 verir
Sudhir Bastakoti

@ Sudhir..Cevap verdiğiniz için çok teşekkürler. Bu da doğru ama ... DATE_FORMAT()kullanmak sizi daha esnek hale getiriyor.
Bayan Gül

1
@MissRosy hoş geldiniz, ve evet, en uygun ve daha esnek bir çözüm kullanmalısınız .. :)
Sudhir Bastakoti 9'12


-2

Yalnızca tarih kullanımı için
date("Y-m-d");

ve sadece zaman kullanımı için
date("H:i:s");


6
hey,
sql'lerin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.