我一直在网上搜索并四处询问,但似乎无法找到问题的答案......
我在OpenOffice Base中与FrontBase数据库运行ODBC连接。我设法选择我想要的一切,但是当我只想显示某些日期之间的记录,甚至是一个日期时,我仍然会出现语义错误。
这是我的疑问:
SELECT * FROM "SALES" WHERE "DATE" = '2014-04-01'
如果您建议使用#
作为日期,则无法使用
DATE '2014-04-01'
也不成功:(
有人有什么想法吗?
答案 0 :(得分:3)
经过大量的试验和错误后,我仔细研究了OpenOfficeBase界面。我确信我的陈述没有任何问题所以我必须在Base中找到一些我不知道的东西。
在工具栏中有一个带有SQL的按钮和一个复选标记,上面写着“立即执行SQL命令”。认为如果我启用它并试一试它不会造成任何伤害。它就是,我的日期过滤器查询!我不知道为什么那个按钮存在或它的确切功能是什么,但启用它使我的查询工作。
无论如何,谢谢你的建议,但显然我们需要进一步了解语言; - )
答案 1 :(得分:1)
在黑暗中拍摄。您使用FrontBase数据库,在Google搜索“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');
答案 2 :(得分:0)
SELECT * FROM SALES WHERE DATE = '2014-04-01'
只要您尝试从中选择的列中没有时间,上述操作就会起作用。什么是列数据类型?
答案 3 :(得分:0)
如果你还在寻找答案
SELECT * FROM "SALES" WHERE "DATE" = {D '2014-04-01'}
似乎应该用字母D表示它是日期而不是字符串/ varchar。我希望这有帮助,即使问题是1岁。