Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
06.03.2007, 04:56
|
|||
|---|---|---|---|
|
|||
Вилы с сортировкой по дате после to_char |
|||
|
#18+
Есть у меня таблица с отсчетами по несколько раз в день. У каждой записи (отсчета) есть timestamp ts (тоесть время и дата) когда она была добавлена. Мне нужно выбрать даты когда была внесена хоть одна запись (только даты). Делаю так: select distinct to_char(ts, 'DD.MM.YY') as date order by date получаю нужные мне даты (10шт), отсоритрованные как... строки :-/ Чешу репу, делаю select distinct to_char(ts, 'DD.MM.YY') as date, ts order by ts получаю все записи (~70шт), сколько есть, а не только даты. Павда, отсортированные как надо Меняю на select distinct to_char(ts, 'DD.MM.YY') as date order by ts Получаю ошибку "для select distinct выражение для order by дложно присутствовать в списке выбираемых полей" Вилы. Как отсортировать даты, полученные первым запросом как даты а не как строки, а то у меня 06.01.2007 больше чем 02.03.2007 :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.03.2007, 05:19
|
|||
|---|---|---|---|
|
|||
Вилы с сортировкой по дате после to_char |
|||
|
#18+
ShadyAngel... select distinct to_char(ts, 'DD.MM.YY')... ... Вилы. Как отсортировать даты, полученные первым запросом как даты а не как строки, а то у меня 06.01.2007 больше чем 02.03.2007 :(TO_CHAR именно это и делает - преобразовывает дату в строковое представление с учетом указанного формата, то есть после её действия дата перестает быть датой и становится строкой, тип данных с timestamp/date меняется на VARCHAR. Чтобы даты в строковом представлении сортировались как даты, нужно : 1) Либо формат преобразования выбрать в виде: 'YYYY.MM.DD' Код: plaintext 1. 2) Либо в select-листе делать два преобразования даты в строку - одно для отображения даты в нужном формате, а другое - для обеспечения правильной сортировки. Код: plaintext 1. 2. 3) Либо делать преобразование поля с датой в Select-листе в строку, а при сортировке эту строку снова преобразовывать в дату: Код: plaintext 1. 4) Как вариант, если задача сводится лишь к отсечению порции времени, то можно использовать функцию TRUNC: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&tablet=1&tid=2005632]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 383ms |

| 0 / 0 |
