OpenOffice SQL查询日期选择

时间:2014-04-01 12:45:11

标签: sql hsqldb openoffice-base frontbase

我一直在网上搜索并四处询问,但似乎无法找到问题的答案......

我在OpenOffice Base中与FrontBase数据库运行ODBC连接。我设法选择我想要的一切,但是当我只想显示某些日期之间的记录,甚至是一个日期时,我仍然会出现语义错误。

这是我的疑问:

SELECT * FROM "SALES" WHERE "DATE" = '2014-04-01'

如果您建议使用#作为日期,则无法使用

DATE '2014-04-01'也不成功:(

有人有什么想法吗?

4 个答案:

答案 0 :(得分:3)

经过大量的试验和错误后,我仔细研究了OpenOfficeBase界面。我确信我的陈述没有任何问题所以我必须在Base中找到一些我不知道的东西。

在工具栏中有一个带有SQL的按钮和一个复选标记,上面写着“立即执行SQL命令”。认为如果我启用它并试一试它不会造成任何伤害。它就是,我的日期过滤器查询!我不知道为什么那个按钮存在或它的确切功能是什么,但启用它使我的查询工作。

enter image description here

无论如何,谢谢你的建议,但显然我们需要进一步了解语言; - )

答案 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岁。