|
Проблемки с запросом в SQLite (с даты)
|
|||
---|---|---|---|
#18+
Есть тапрос: Код: plaintext
И прикол в том, что находит только даты которые меньше заданой "date_entering< data", а вот равно заданой не ищет, тоесть "date_entering = data". Это глюк или я что-то не так делаю ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2009, 15:49 |
|
Проблемки с запросом в SQLite (с даты)
|
|||
---|---|---|---|
#18+
Дату надо писать в формате "YYYY-MM-DD" и выбирать соответственно: SELECT * from table1 WHERE date_entering<='2007-08-02' ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2009, 19:57 |
|
Проблемки с запросом в SQLite (с даты)
|
|||
---|---|---|---|
#18+
potkin, SQLite DateAndTimeFunctions , а конкретней правильную дату можно получить используя функцию strftime( ) , SELECT * from table1 WHERE date_entering = strftime("%Y-%m-%d", "2009-01-01") ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2009, 06:29 |
|
Проблемки с запросом в SQLite (с даты)
|
|||
---|---|---|---|
#18+
potkinЕсть тапрос: Код: plaintext
И прикол в том, что находит только даты которые меньше заданой "date_entering< data", а вот равно заданой не ищет, тоесть "date_entering = data". Это глюк или я что-то не так делаю ??? Вы используете несколько устаревшую версию SQLite. Дело в том, что долгое время в SQLite дата хранилась как число с плавающей точкой (внутреннее представление). В последних версиях эта проблема решена, теперь дата хранится в микросекундах (хотя представляется по-прежнему как дробное число дней) и для сравнения дат можно использовать оператор равенства. Если нет возможности обновиться, следует сравнивать с диапазоном, границы которого отличаются, например, на 1 ms от хранимой даты (вообще-то хватит и микросекунды, но не могу ручаться, что на всех архитектурах микросекунды будет достаточно). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2009, 14:04 |
|
Проблемки с запросом в SQLite (с даты)
|
|||
---|---|---|---|
#18+
Пользуюсь последней библиотекой: http://sqlite.org/sqlitedll-3_6_13.zip Связуюсь с ней через: "using Finisar.SQLite;" (C# .NET 2.0 - 3.5) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2009, 12:59 |
|
Проблемки с запросом в SQLite (с даты)
|
|||
---|---|---|---|
#18+
MBGДело в том, что долгое время в SQLite дата хранилась как число с плавающей точкой (внутреннее представление). Вообще то SQLite позволяет хранить дату как заблагорасудится - хоть строкой, хоть числом, хоть в собственном бинарном формате и т.д. Встроенные же в SQLite функции понимают два формата дат: - строковый в одном из форматов указанных по ссылке - числовой, который есть юлиановское число дней (целая часть) и время (дробная часть) Так вот если там юлиановская дата, то на точное сравнение может влиять ошибка округления. Т.е. при переводе в строку дата выглядит "как нужно", а на самом деле там ХЗ какие доли секунды, не влезающие ни в один формат времени. Так как там дата то храниться ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2009, 13:54 |
|
|
start [/forum/topic.php?fid=54&tid=2009453]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 174ms |
0 / 0 |