Выбор даты 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 год.

Другие вопросы по тегам