Как отделить ДАТУ и ВРЕМЯ от ДАТЫ в 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 добро пожаловать, и да, вы должны использовать решение, которое подходит больше всего и является более гибким .. :)
Судхир Бастакоти,
0

Просто
выберите ВРЕМЯ (имя_столбца), ДАТУ (имя_столбца)

Тушара Буддхика
источник
Как насчет DATE?
fadlikidd
-2

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

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

Свапнил
источник
6
эй, вы даете решение php, а не sql :)
maq