powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Выбор периода дат
7 сообщений из 7, страница 1 из 1
Выбор периода дат
    #39249311
LenaKi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста как выбрать период дат из колонки dateparam в которой данные хранятся в виде 31.05.16
Например, как правильно выбрать данные с 1-го мая по 1-ое июня.
Спасибо.

Таблица:
CREATE TABLE [logbeacon] (
[idpkey] INTEGER PRIMARY KEY NOT NULL,
[idbeacon] TEXT NULL,
[minor] INTEGER NULL,
[datetimeevents] TEXT NULL,
[events] TEXT NULL,
[dateparam] TEXT NULL
)
...
Рейтинг: 0 / 0
Выбор периода дат
    #39249343
pihel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LenaKi,

через бинд переменные вашей библиотеки работы с бд:
WHERE
dateparam BETWEEN ? AND ?

а в параметры уже передать дату в формате Y-m-d
...
Рейтинг: 0 / 0
Выбор периода дат
    #39249354
LenaKi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня Дельфи/C++ Builder.
Я так пробую:
SELECT * FROM logbeacon WHERE
strftime('%d.%m.%Y', dateparam)
BETWEEN :dateparamstart
AND :dateparamend;

где :dateparamstart/dateparamend это значения в виде 31.05.16
но это все не работает...
...
Рейтинг: 0 / 0
Выбор периода дат
    #39249392
pihel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LenaKistrftime
разве не приводит дату к тексту?

лучше бы вы столбец dateparam сделали типа date, тогда не нужно было бы делать никаких преобразования (с учетом, если бинд переменная в делфи типа date)

Иначе вам сейчас нужны типа таких преобразования текста в дату: DATE(substr(dateparam ,1,4) ||substr(dateparam ,6,2)||substr(dateparam ,9,2)).
...
Рейтинг: 0 / 0
Выбор периода дат
    #39249638
archelite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня похожий вопрос, нужно получить максимальное и минимальное значение даты из определенной группы, но хранится дата в формате dd.mm.YYYY например 22.10.2015, попробовал преобразовать похожим образом как в предыдущем сообщении, но не сработало.

Если преобразование не делать то идет сравнение только по первому числу(т.е. дню) что неверно.

часть запроса select max(date(substr(dt, 1,4) || substr(dt, 6,2) || substr(dt, 7,4))).

Что в данном запросе будет означать знак || ? раньше я пытался делать replace + substr но это получалось крайне громоздко и я запутался в скобках и запятых, ведь наверняка должен быть способ попроще)

Возможно что в моем случае преобразовывать к sqlite дате и не нужно, а сразу получить long и его потом сравнивать?
...
Рейтинг: 0 / 0
Выбор периода дат
    #39249649
archelite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос решил самостоятельно, пример преобразования даты из формата dd.mm.YYYY в формат YYYY-mm-dd

date(substr(dt, 7, 4) || "-" || substr(dt, 4, 2) || "-" || substr(dt, 0, 3))

возможно кому-нибудь пригодится :)
...
Рейтинг: 0 / 0
Выбор периода дат
    #39250342
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
archeliteЧто в данном запросе будет означать знак || ?Букварь читать не барское дело?
http://www.sql.ru/docs/sql/u_sql/c.shtml
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Выбор периода дат
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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