2014-04-01 70 views
2

我一直在寻找网页和打听,但似乎无法找到答案我的问题......OpenOffice的SQL查询日期选择

我与OpenOffice的在我的FrontBase数据库运行的ODBC连接基础。我设法选择我想要的所有东西,但是当我只想在特定日期之间显示记录时,或者甚至是一个日期时,我都会收到语义错误。

这里是我的查询:

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

就在你建议使用#的日期的情况下,它不工作,要么

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

任何人有任何想法?

+0

试着用WHERE“DATE”> ='2014-04-01'和类似的方法消除夏时制小时的任何可能的问题。您还应该报告返回的错误。 – fredt

+0

@fredt不幸的是没有成功。我收到以下错误: SQL-status:HY000 [FrontBase Inc。] [FrontBase ODBC]语义错误217.数据类型无法比较或不匹配。 语义错误485.附近:SELECT DISTINCT * FROM“SALES”WHERE“DATE”> ='2014-04-01';. 语义错误485.附近:'2014-04-01'。 异常363.事务回滚。 –

回答

3

经过大量的试验和错误之后,我仔细研究了OpenOfficeBase接口。我确定我的发言没有任何问题,所以我必须在Base中发现一些我错过的东西。

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

enter image description here

不管怎样,谢谢您的建议,但显然我们必须看得更远不仅仅是语言;-)

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

上面应该窝只要您尝试从中选择列中没有时间。什么是列数据类型?

+0

这是一个简单的日期列,没有任何时间戳记。当你查看表格时,它的格式为01/04/2014,但当然这在查询中不起作用... –

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'); 
+0

我在我的任务中发现了一个,但由于它包含DATE,我立即得到“Syntax error在SQL表达式“中。 –

0

如果你还在寻找答案

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

似乎应该把字母D表示它是日期而不是字符串/ varchar。我希望这有助于,尽管问题是1岁。