Я пытаюсь написать инструкцию SQLite, чтобы получить ближайшее время datetime от пользовательского ввода (из WPF datepicker). У меня есть таблица IRquote (rateId, quoteDateAndTime, quoteValue).SQLite-запрос, чтобы получить ближайшее datetime
Например, если пользователь вводит 10/01/2000, а база данных хранит только фиксацию для 08/01/2000, 07/01/2000 и 14/01/2000, она вернется 08/01/2000 , являясь самой близкой датой от 10/01/2000.
Конечно, я бы хотел, чтобы он работал не только с датами, но и со временем.
Я пытался с этим запросом, но он возвращает строку с датой дальней, а не самым близким:
SELECT quoteValue FROM IRquote
WHERE rateId = '" + pRefIndexTicker + "'
ORDER BY abs(datetime(quoteDateAndTime) - datetime('" + DateTimeSQLite(pFixingDate) + "')) ASC
LIMIT 1;
Обратите внимание, что у меня есть функция DateTimeSQLite для преобразования пользовательского ввода в нужном формат.
Я не понимаю, почему это не работает. Как я мог это сделать? Спасибо за вашу помощь.
Откуда вы получаете этот вход пользователя? Где хранятся данные? –
Я не уверен во всех командах SQL, чтобы сделать это, но я подозреваю, что должен быть какой-то способ разграничить ввод с сохраненными значениями, получить из него числовое значение, сортировать по этому значению ('ORDER BY') , и возьмите первую запись ('TOP 1'). (Необязательно преобразовать в абсолютное значение перед сортировкой, если вы хотите получить самое близкое время в любом направлении.) – David
@BerndLinde Я отредактировал мой вопрос, чтобы добавить более подробную информацию. Дэвид Я попробую еще раз с предложенным методом. Спасибо за вашу помощь – MarinD