2

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

我在 OpenOffice Base 中与我的 FrontBase 数据库有一个正在运行的 ODBC 连接。我设法选择了我想要的所有内容,但是当我只想显示某些日期之间的记录时,甚至是一个日期,我不断收到语义错误。

这是我的查询:

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

万一您建议使用#日期,它也不起作用

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

有人有想法么?

4

4 回答 4

3

经过大量试验和错误后,我仔细查看了 OpenOfficeBase 界面。我确信我的陈述没有任何问题,所以 Base 中一定有我遗漏的东西。

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

在此处输入图像描述

无论如何感谢您的建议,但显然我们必须进一步了解语言;-)

于 2014-07-29T13:45:44.400 回答
1

在这里在黑暗中拍摄。你使用 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');
于 2014-07-28T15:06:30.520 回答
0
SELECT * FROM SALES WHERE DATE = '2014-04-01'

只要您尝试从中选择的列中没有时间,上述内容就应该有效。什么是列数据类型?

于 2014-04-01T13:00:18.427 回答
-1

如果你还在寻找答案

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

似乎应该将字母 D 表示它是日期而不是字符串/varchar。我希望这会有所帮助,即使这个问题已经存在 1 年了。

于 2016-02-29T16:52:39.233 回答