2013-02-13 1 views
2

Выполнение этой команды приносит мне следующие (все даты из всех столбцов, поэтому она по существу делала то же самое, что и SELECT дата без отчетливых):Выбор отдельной даты по дате только из даты и времени (ГГГГ-ММ-ДД ЧЧ: ММ: СС) в MySQL

SELECT DISTINCT date FROM daily ORDER BY date DESC 

2013-02-12 16:40:52 
2013-02-06 11:48:49 
2013-02-06 11:36:41 
2013-02-06 11:35:59 
2013-02-04 19:38:12 
2013-02-04 18:12:30 
2013-02-04 09:58:41 
2013-02-04 09:43:01 
2013-02-04 09:35:51 
2013-02-04 09:30:22 
2013-02-04 09:24:57 
2013-02-04 09:21:09 
2013-02-04 08:50:13 

Что мне нужно:

2013-02-12 
2013-02-06 
2013-02-04 
  1. есть ли способ, чтобы изменить мою дату таблицы и преобразовать его в YYYY-MM-DD, а?

  2. Если нет, есть ли способ выбрать отдельные даты, основанные только на день?

+2

Какие СУБД вы используете? – bobs

+0

Какая база данных? Oracle, SQL Server, Teradata, MySQL? –

+2

Вы понимаете, что мы все играем в догадки - почему бы не рассказать нам, какая база данных ??? – sgeddes

ответ

0

Для MySQL вы можете использовать DATE(date), чтобы вернуть только дату. Если вы хотите отформатировать его, используйте DATE_FORMAT:

SELECT DISTINCT DATE_FORMAT(yourdate, '%Y-%m-%d') 
FROM daily ORDER BY DATE(yourdate) DESC 

Вы не можете изменить путь базы данных хранит эти значения.

А вот скрипка: http://sqlfiddle.com/#!2/f50527/6

6
mysql> select DATE_FORMAT(Current_Timestamp, '%c %d %Y') from dual; 
+--------------------------------------------+ 
| DATE_FORMAT(Current_Timestamp, '%c %d %Y') | 
+--------------------------------------------+ 
| 2 12 2013         | 
+--------------------------------------------+ 
1 row in set (0.01 sec) 

mysql> 

, конечно, вы будете использовать свою «ежедневную» таблицу.

mysql> select DATE_FORMAT(Date, '%c %d %Y') from daily; 

или, может быть, вы хотите

mysql> select * from daily group by DATE_FORMAT(Date, '%c %d %Y'); 
1

Попробуйте это:

SELECT DISTINCT(CONVERT(VARCHAR, CONVERT(DATETIME,[DATE]),23)) AS DT 
FROM DAILY 
ORDER BY DT ASC 
1

я нашел на больших наборах данных> N миллионов, группировка по DATE_FORMAT может быть на 10-20% медленнее, чем использование;

GROUP BY someid,year(date),month(date),day(date) 
0

В Access DB

SELECT DISTINCT Format(date, 'Short Date') 
    FROM daily 
ORDER BY Format(date, 'Short Date') DESC; 
+0

* «Access DB» *? Этот вопрос касается MySQL, а не Access DB. – Pang

+0

bro questioner указать любую базу данных – FC3D

+0

Пожалуйста, внимательно прочитайте вопрос. Он говорит «в MySQL» в конце заголовка вопроса. Он также говорит «mysql» в тегах под вопросом. Вы также можете прочитать другие ответы, которые все для MySQL. – Pang

Смежные вопросы