Выбор даты OpenOffice SQL-запроса
Я искал в Интернете и спрашивал, но не могу найти ответ на мою проблему...
У меня есть работающее соединение ODBC с моей базой данных FrontBase в OpenOffice Base. Мне удается выбрать все, что я хочу, но когда я хочу показать записи только между определенными датами или даже одной датой, я получаю семантическую ошибку.
Вот мой запрос:
SELECT * FROM "SALES" WHERE "DATE" = '2014-04-01'
На случай, если вы предложите использовать #
на сегодняшний день это тоже не работает
DATE '2014-04-01'
тоже неудачно:(
У кого-нибудь есть идеи?
4 ответа
После многих проб и ошибок я более внимательно посмотрел на интерфейс OpenOfficeBase. Я был уверен, что с моим утверждением все в порядке, поэтому в базе должно быть что-то, что я пропускаю.
На панели инструментов есть кнопка с SQL и галочкой, которая гласит "Немедленно выполнить SQL-команду". Думаю, это не принесет никакого вреда, если я включу его и попробую. И вот, мой запрос с датой! Я понятия не имею, почему эта кнопка есть или какова ее точная функция, но включение ее заставило мой запрос работать.
В любом случае, спасибо за предложения, но, очевидно, мы должны смотреть дальше, чем просто язык;-)
Выстрел в темноте здесь. Если вы используете базу данных FrontBase, поиск в "диапазоне дат выбора Frontbase" дал мне эту страницу: http://www.frontbase.com/documentation/LookSeeIntro-2.3.html
Там у них есть этот пример запроса:
SELECT
receiver FROM memo_mails
WHERE
sender = 'QA' AND
CAST(dateSent AS DATE) < DATE '2001-06-01' AND
SATISFIES(quickx, 'Periscope & invoice');
На основании этого примера я бы попробовал
SELECT
* FROM "Sales"
WHERE
(CAST("Sales"."SalesDate" AS DATE) >= DATE '2014-06-01') AND
(CAST("Sales"."SalesDate" AS DATE) <= DATE '2014-06-30');
SELECT * FROM SALES WHERE DATE = '2014-04-01'
Вышеуказанное должно работать, пока в столбце, из которого вы пытаетесь выбрать, нет времени. Какой тип данных столбцов?
Если вы все еще ищете ответы
SELECT * FROM "SALES" WHERE "DATE" = {D '2014-04-01'}
Кажется, нужно поставить букву D, чтобы обозначить, что это дата, а не строка /varchar. Я надеюсь, что это помогает, хотя вопрос 1 год.