ORDER BY для Format(Дата,"Short Date")

Фрилансер
Дата: 18.11.2006 13:55:34
Собсно требуется сделать сортировку по полю

ORDER BY Format([Count Report].Дата,"Short Date")

Сортировка происходит как угодно, только не так, как нужно...
Где порылась собака?
mds_world
Дата: 18.11.2006 14:01:36
Долго пялился на ваш пост и никак не мог понять, а зачем здесь вообще формат? В каком бы не была формате дата, все равно сортировка идет одинакого. Поля нового при ORDER BY не создается. Вывод: такой формулировкой ORDER BY вы просто запутали SQL. Делайте проще
ORDER BY [Count Report].Дата
И будет сортировка по дате.
Фрилансер
Дата: 18.11.2006 15:47:01
в некоторых датах еще имеет место быть время, что есть большое несчастье...
таким образмо намеревался обрезать ненужные часики с минутками (чтобы после группировать только по дате)...
Владимир Саныч
Дата: 18.11.2006 16:04:20
Функция Format возвращает стринг. Стринги сортируются по алфавиту. Поэтому есть два способа: либо сделать такой формат, чтобы его сортировка по алфавиту была логичной (например, YYYYDDMM), либо задвинуть нафиг этот формат и просто брать Int от даты (чтобы проигнорировать часы, минуты и т.д.).
вадя
Дата: 18.11.2006 16:50:15
тогда уж

ORDER BY CDate(Format([Count Report].Дата,"Short Date"))
Владимир Саныч
Дата: 18.11.2006 21:12:37
вадя
тогда уж

ORDER BY CDate(Format([Count Report].Дата,"Short Date"))

А смысл? Гонять туда-сюда, сначала в стринг, а потом обратно в дату? Трата времени, а возможно и искажение данных.
mds_world
Дата: 18.11.2006 21:25:26
Фрилансер
в некоторых датах еще имеет место быть время, что есть большое несчастье...
таким образмо намеревался обрезать ненужные часики с минутками (чтобы после группировать только по дате)...
Что-то я не догоняю. Order By не создает полей, он только сортирует. И отсортирует правильно. А обрезания разного рода вы сделаете там где положено, но не в предложении Order By. Мортировать по дате!, больше ничего не надо. ИМХО.
вадя
Дата: 18.11.2006 21:53:01
Владимир Саныч
вадя
тогда уж

ORDER BY CDate(Format([Count Report].Дата,"Short Date"))

А смысл? Гонять туда-сюда, сначала в стринг, а потом обратно в дату? Трата времени, а возможно и искажение данных.


это если хочется сортировать и убрать время
а так и без всего отсортирует
funddd
Дата: 18.11.2006 22:01:29
а зачем в сортировке "убирать время"?

от этого результат сортировки как-то изменится, что ли?
Владимир Саныч
Дата: 18.11.2006 22:09:17
вадя
это если хочется сортировать и убрать время

Между "убрать время" и "убить время" есть разница. Для убрать я уже предложил Int. Твой вариант - для убить (и, возможно, исказить данные).

funddd
а зачем в сортировке "убирать время"?

от этого результат сортировки как-то изменится, что ли?

Конечно, изменится. Возьми посты этого топика и рассортируй двумя способами:

order by датасвременем, авторпоста -> получишь сортировку постов по времени создания

order by датабезвремени, авторпоста -> получишь сортировку постов по алфавиту авторов (потому что датабезвремени здесь пока у всех постов одинаковая)