Как отделить ДАТУ и ВРЕМЯ от ДАТЫ в MySQL


84

Я храню поле DATETIME в таблице. Каждое значение выглядит примерно так: 2012-09-09 06:57:12 .

Я использую такой синтаксис:

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

Теперь мой вопрос: как получить дату и время отдельно , используя один запрос MySQL?

Дата вроде 09.09.2012 и время 06:57:12 .


возможно, вы ищете, DATE_FORMATа нет, DATEи TIMEпоскольку он даст вам дату по умолчанию, если вы ищете время, и время по умолчанию, если вы ищете дату, см. мой ответ ниже.
Джон Ву,

Ответы:


128

Вы можете добиться этого с помощью DATE_FORMAT () ( щелкните ссылку, чтобы просмотреть другие форматы )

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

Демонстрация SQLFiddle


Привет, Как получить значение ?? Могу ли я использовать echo DATEONLYдля печати даты и echo TIMEONLYдля печати времени? Или что??
Мисс Рози,

@MissRosy: да, вы можете использовать их псевдонимы ( например, DATEONLY и TIMEONLY ), чтобы получить нужные вам значения.
Джон Ву,


@MissRosy, пожалуйста. Лучшее, что вы можете отформатировать в любую форму, какую захотите.
Джон Ву,

@ Джон ... да ... я люблю эту штуку :)
Мисс Рози

49

согласно документации mysql, функция DATE () будет извлекать часть даты из datetime feild и TIME () для части времени. поэтому я бы попробовал:

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

17

Пытаться:

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

это не будет получено DATEи TIMEтолько как то, что спрашивает пользователь. Он предоставит полную дату и время по умолчанию. ПРОДАЙТЕ ЭТУ ССЫЛКУ
Джон Ву

1
он будет сгенерирован September, 09 2012 00:00:00-0400для DATE и January, 01 1970 03:20:38-0500для TIME
Джон Ву,

4
ну, согласно запросу он дает 2012-09-09 как date_part и 06:57:12 как часть времени в mysql
Судхир Бастакоти,

@ Sudhir .. Большое спасибо за ответ. Это тоже правильно, но ... использование DATE_FORMAT()делает тебя более гибким.
Мисс Рози,

1
@MissRosy добро пожаловать, и да, вы должны использовать решение, которое подходит больше всего и является более гибким .. :)
Судхир Бастакоти,


-2

Только для использования на свидании
date("Y-m-d");

и только на время
date("H:i:s");


6
эй, вы даете решение php, а не sql :)
maq
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.