Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как получить дату в запросе / 10 сообщений из 10, страница 1 из 1
12.01.2010, 08:23
    #36404564
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить дату в запросе
Имеется БД, в которой в поле f_date типа double хранится дата. База заполнялась из под делфийской программы, где в это поле писалось значение типа TDateTime. Теперь встала задача выбрать все записи, в которых f_date < '01.01.2010'. Т.е. типа так:
Код: plaintext
SELECT * FROM table WHERE f_date<'01.01.2010'
Понятно, что так не сработает, но как преобразовать в запросе строку даты в тип double?
...
Рейтинг: 0 / 0
12.01.2010, 10:08
    #36404666
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить дату в запросе
Или преобразовать f_date в строку средствами SQL, как?
Гуру, ну помогите ньюбу в SQLite, плиз!
...
Рейтинг: 0 / 0
12.01.2010, 12:50
    #36405038
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить дату в запросе
Зависит от компонентов доступа - как дата сохранялась в поле.
Варианты - в виде строки, юлиановская дата в виде числа с плавающей запятой.
Определи что там, тогда можно будет сказать, как с этой датой работать.
...
Рейтинг: 0 / 0
12.01.2010, 13:09
    #36405094
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить дату в запросе
Dmitry Arefiev,

Даты хранятся в поле f_date в виде 39399.4588194444, т.е. типа TDateTime в Delphi (double, float).
...
Рейтинг: 0 / 0
12.01.2010, 13:23
    #36405149
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить дату в запросе
SQLite про TDateTime не в курсе. Можно конечно написать собственные функции для
работы с TDateTime в SQLite, но есть ли смысл ...

Используй параметры и присваивай '01.01.2010' параметру в виде TDateTime значения.
...
Рейтинг: 0 / 0
12.01.2010, 13:33
    #36405172
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить дату в запросе
Dmitry Arefiev,

Программно желаемое не сложно сделать, но проблема в том, как написать (и выполнить) такой запрос, используя любой менеджер БД SQLite (типа Sqliteman/SQLite Expert Professional/ и т.п.)?
Неужели никак нельзя?
...
Рейтинг: 0 / 0
12.01.2010, 15:56
    #36405613
Как получить дату в запросе
LiYing,
смотрите тут все функции что есть http://www.sqlite.org/lang_datefunc.html для работы с временем
...
Рейтинг: 0 / 0
12.01.2010, 16:26
    #36405692
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить дату в запросе
Максим-ИвановLiYing,
смотрите тут все функции что есть http://www.sqlite.org/lang_datefunc.html для работы с временем
Там я смотрел в первую очередь, к сожалению, ничего подходящего не нашел :(
...
Рейтинг: 0 / 0
12.01.2010, 17:44
    #36405972
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить дату в запросе
Тогда пишешь свое расширение с функцией типа
Код: plaintext
double string_date_to_double(char *)
и/или обратной ей и подгружаешь через [sqlite3_]load_extension()
...
Рейтинг: 0 / 0
12.01.2010, 19:55
    #36406207
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить дату в запросе
скорее delphidate_to_jdate или delphidate_to_str :)
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как получить дату в запросе / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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