powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Проблемки с запросом в SQLite (с даты)
6 сообщений из 6, страница 1 из 1
Проблемки с запросом в SQLite (с даты)
    #35958708
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть тапрос:
Код: plaintext
SELECT * from table1 WHERE date_entering<= data

И прикол в том, что находит только даты которые меньше заданой "date_entering< data", а вот равно заданой не ищет, тоесть "date_entering = data".
Это глюк или я что-то не так делаю ???
...
Рейтинг: 0 / 0
Проблемки с запросом в SQLite (с даты)
    #35959473
Alexbootch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дату надо писать в формате "YYYY-MM-DD"

и выбирать соответственно:

SELECT * from table1 WHERE date_entering<='2007-08-02'
...
Рейтинг: 0 / 0
Проблемки с запросом в SQLite (с даты)
    #35959832
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkin,

SQLite DateAndTimeFunctions , а конкретней правильную дату можно получить используя функцию strftime( ) ,
SELECT * from table1 WHERE date_entering = strftime("%Y-%m-%d", "2009-01-01")
...
Рейтинг: 0 / 0
Проблемки с запросом в SQLite (с даты)
    #35960923
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
potkinЕсть тапрос:
Код: plaintext
SELECT * from table1 WHERE date_entering<= data

И прикол в том, что находит только даты которые меньше заданой "date_entering< data", а вот равно заданой не ищет, тоесть "date_entering = data".
Это глюк или я что-то не так делаю ???

Вы используете несколько устаревшую версию SQLite. Дело в том, что долгое время в SQLite дата хранилась как число с плавающей точкой (внутреннее представление). В последних версиях эта проблема решена, теперь дата хранится в микросекундах (хотя представляется по-прежнему как дробное число дней) и для сравнения дат можно использовать оператор равенства. Если нет возможности обновиться, следует сравнивать с диапазоном, границы которого отличаются, например, на 1 ms от хранимой даты (вообще-то хватит и микросекунды, но не могу ручаться, что на всех архитектурах микросекунды будет достаточно).
...
Рейтинг: 0 / 0
Проблемки с запросом в SQLite (с даты)
    #35963286
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользуюсь последней библиотекой:
http://sqlite.org/sqlitedll-3_6_13.zip

Связуюсь с ней через:
"using Finisar.SQLite;" (C# .NET 2.0 - 3.5)
...
Рейтинг: 0 / 0
Проблемки с запросом в SQLite (с даты)
    #35963451
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGДело в том, что долгое время в SQLite дата хранилась как число с плавающей точкой (внутреннее представление).
Вообще то SQLite позволяет хранить дату как заблагорасудится - хоть строкой, хоть числом,
хоть в собственном бинарном формате и т.д. Встроенные же в SQLite функции понимают два
формата дат:
- строковый в одном из форматов указанных по ссылке
- числовой, который есть юлиановское число дней (целая часть) и время (дробная часть)

Так вот если там юлиановская дата, то на точное сравнение может влиять ошибка округления.
Т.е. при переводе в строку дата выглядит "как нужно", а на самом деле там ХЗ какие доли
секунды, не влезающие ни в один формат времени.

Так как там дата то храниться ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Проблемки с запросом в SQLite (с даты)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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