MySql - Закажите по дате и затем ко времени

У меня есть таблица с 2 полями 'даты и времени': 'eventDate' и 'eventHour'. Я пытаюсь заказать 'eventDate' и затем 'eventHour'.

Для каждой даты у меня будет список событиями OS, так вот почему я желание заказать по дате и затем ко времени.

спасибо!!

9
задан AndreMiranda 26 July 2010 в 01:05
поделиться

4 ответа

Я не уверен, есть ли какой-нибудь скрытый смысл в вашем вопросе, но стандартный способ сделать это кажется подходящим:

... order by eventDate, eventHour

Это дает вам часы в пределах дат, например:

Feb 15
    09:00
    12:00
    17:00
Feb 23
    22:00
    : :

Если на самом деле у вас есть эти два поля как поля real datetime , ваша схема испорчена. У вас должно быть поле дата для даты и время или целое поле для часа.

Вы можете объединить оба в одно поле datetime , но вы должны сбалансировать это с неэффективностью выполнения построчных функций в ваших инструкциях select , если вы хочу их разделить. Обычно лучше хранить поля отдельно, если вы собираетесь их использовать отдельно.

Если вы действительно должны использовать построчные функции, вы можете использовать:

date(datetime_column)
time(datetime_column)

для извлечения только компонентов даты и и времени из datetime .

23
ответ дан 4 December 2019 в 06:11
поделиться

Вы можете заказать столько, сколько вам нужно, просто используйте список. Он будет отсортирован по первому значению, затем по второму ... и т. Д.

  SELECT *
    FROM table
ORDER BY eventDate, eventHour

Если у вас есть два поля даты и времени, вы можете получить только дату или час, используя что-то вроде:

    SELECT *
      FROM table
  ORDER BY DATE_FORMAT(eventDate, '%d'), DATE_FORMAT(eventHour, '%h')
1
ответ дан 4 December 2019 в 06:11
поделиться

Почему бы не сохранить оба eventDate и eventHour в одном поле, если они оба DateTime ?

Чтобы получить желаемое с текущим схему можно сделать так:

SELECT * FROM table 
  ORDER BY 
    EXTRACT(YEAR_MONTH FROM eventDate),
    EXTRACT(DAY FROM eventDate),
    EXTRACT(HOUR FROM eventHour)
3
ответ дан 4 December 2019 в 06:11
поделиться

Не работает ли

select * from my_table order by eventDate, eventHour

?

3
ответ дан 4 December 2019 в 06:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: