Лучший способ рассчитать даты по результатам? - PullRequest
2 голосов
/ 18 февраля 2009

У меня есть таблица базы данных. Он имеет несколько сотен записей, и каждая запись имеет метку времени. Я рассчитываю только выводить каждый день, а не дублировать его.

Данные:
2009-02-04 06: 20: 27
2009-02-04 06: 20: 27
2009-02-05 06: 20: 27
2009-02-07 06:20:27
2009-02-07 06:20:27
2009-02-07 06:20:27

Вывод должен быть только (время не имеет значения):
2009-02-04 06: 20: 27
2009-02-05 06: 20: 27
2009-02-07 06:20:27

Каков наилучший способ сделать это? Должен ли я действительно ездить на велосипеде через каждый ряд и сравнивать один из другого? Просто не кажется эффективным. Есть идеи / советы?

Ответы [ 5 ]

4 голосов
/ 18 февраля 2009

Вы не можете просто выбрать метку времени "DISTINCT" в своем запросе?

Или, если времена меняются в каждый день (не точно из вашего примера), вы можете преобразовать столбец отметки времени в просто дату полета, используя функцию mysql DATE. Имейте в виду, что это может помешать использованию индекса, если он используется в этом столбце.

например.

SELECT DISTINCT DATE(timestamp_column) FROM table

Это удалит временную часть временной метки.

1 голос
/ 18 февраля 2009
SELECT DISTINCT CAST(data AS DATE)
    FROM DataTable;

Это уменьшает часть времени, а затем дает уникальные значения DATE.

1 голос
/ 18 февраля 2009

Это распечатает двойные метки времени, но должно отличаться только от даты.

SELECT DISTINCT CAST(timestamp AS DATE), timestamp, FROM table.
1 голос
/ 18 февраля 2009

Вы можете сделать это на уровне базы данных, используя ключевое слово mysql DISTINCT:

SELECT DISTINCT date
FROM table

Это сделает так, что если есть повторяющиеся даты, возвращается только одна. Подробнее об этом здесь .

0 голосов
/ 18 февраля 2009

Функция DATE () извлекает дату из поля даты и времени. Вы можете использовать результат этого для группировки. Используется так:

SELECT fields FROM table WHERE condition GROUP BY DATE(datefield)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...