powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как отсортировать выборку вида dd.mm.yyyy hh.mm.ss ?
5 сообщений из 5, страница 1 из 1
Как отсортировать выборку вида dd.mm.yyyy hh.mm.ss ?
    #37698934
27RUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошу помощи, не могу понять

работаю в Delhi

в таблице дата записи хранится в виде dd.mm.yyyy hh:mm:ss
выбираю даты С и ПО
Код: sql
1.
'SELECT * FROM aircrafts WHERE Substr(aircrafts.LastTime, 7, 4) || ''-'' || Substr(aircrafts.LastTime, 4, 2) || ''-'' || Substr(aircrafts.LastTime, 1, 2) || '' '' || Substr(12,Length(aircrafts.LastTime)) >="'+DateToStr(FirstTimeSelect.DateTime)+' 00:00:00'+'" AND Substr(aircrafts.LastTime, 7, 4) || ''-'' || Substr(aircrafts.LastTime, 4, 2) || ''-'' || Substr(aircrafts.LastTime, 1, 2) || '' '' || Substr(12,Length(aircrafts.LastTime))<="'+DateToStr(LastTimeSelect.DateTime)+' 23:59:59'+'ORDER BY Substr(aircrafts.LastTime, 7, 4) || ''-'' || Substr(aircrafts.LastTime, 4, 2) || ''-'' || Substr(aircrafts.LastTime, 1, 2) DESC'



добавлял в конец еще и
Код: sql
1.
|| '' '' || Substr(12,Length(aircrafts.LastTime)) 

, все тоже самое

во первых, почему то не выбирается с начального дня, а только со следующего

во вторых, при выполнении выбирается по дням, а вот внутри дня все перемешивается - по времени не сортируется :(

как надо делать такой запрос?
...
Рейтинг: 0 / 0
Как отсортировать выборку вида dd.mm.yyyy hh.mm.ss ?
    #37698951
27RUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так, нашел ошибку, может кому пригодится запрос привожу, а может кто подскажет как оптимизировать

Код: sql
1.
2.
3.
4.
5.
'SELECT * FROM aircrafts WHERE Substr(aircrafts.LastTime, 7, 4) || ''-'' || Substr(aircrafts.LastTime, 4, 2) || ''-'' ||
 Substr(aircrafts.LastTime, 1, 2) || '' '' || Substr(aircrafts.LastTime,12,8) >="'+DateToStr(FirstTimeSelect.DateTime)+' 00:00:00'+'" AND
 Substr(aircrafts.LastTime, 7, 4) || ''-'' || Substr(aircrafts.LastTime, 4, 2) || ''-'' || Substr(aircrafts.LastTime, 1, 2) || '' '' ||
 Substr(aircrafts.LastTime,12,8)<="'+DateToStr(LastTimeSelect.DateTime)+' 23:59:59'+'" ORDER BY Substr(aircrafts.LastTime, 7, 4) || ''-''
 || Substr(aircrafts.LastTime, 4, 2) || ''-'' || Substr(aircrafts.LastTime, 1, 2) || '' '' || Substr(aircrafts.LastTime,12,8) ASC';
...
Рейтинг: 0 / 0
Как отсортировать выборку вида dd.mm.yyyy hh.mm.ss ?
    #37699081
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
27RUS,

Думаю, что вы выбрали неверное решение. Сперва внимательно прочитайте мануал. А такое составление SQL-строки лучше забыть и использовать bind параметров.

Во-первых, важен тип столбца и способ помещения в него данных. Загрузка даты как строки увеличивает объем хранения и усложняет обработку - используйте bind параметров запроса с указанием корректных типов.

Во-вторых, полезно использование индексов.

При соблюдении этих условий, выборка по диапазону дат будет типовая, посредством BETWEEN.

Ознакомьтесь еще раз с мануалом и убедитесь, что есть более правильные решения.
http://sqlite.org/datatype3.html
http://sqlite.org/lang_datefunc.html
...
Рейтинг: 0 / 0
Как отсортировать выборку вида dd.mm.yyyy hh.mm.ss ?
    #37699208
27RUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RXL,

выбрал именно такой формат, основываясь на другой коммерческой программе, которая прекрасно работает
и мне нужна была совместимость баз данных
...
Рейтинг: 0 / 0
Как отсортировать выборку вида dd.mm.yyyy hh.mm.ss ?
    #37699450
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
27RUS,

Выбранное вами решение выполняет full scan. Надеюсь не нужно объяснять последствия.

Не зная ничего об этой программе, о DDL ее базы и в чем вы хотите сохранить совместимость, вряд ли что-то еще смогу посоветовать, кроме как изучать документацию и экспериментировать.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как отсортировать выборку вида dd.mm.yyyy hh.mm.ss ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]