我正在尝试将修改日期(字段类型:时间戳)与基于当前日期前一个月的值进行比较。使用函数DateAdd()时,我不断收到语法错误。
我正在使用Libreoffice base 6.2.3.2(x64)和嵌入式firebird 3.0
使用此代码,我得到一个不返回记录但没有错误的结果
Select *
From "tblPart"
Where "Date Modified" = Current_Timestamp
但是只要我想使用Dateadd()函数,我都会收到错误
Select *
From "tblPart"
Where
"Date Modified"< Dateadd(Month,-1,Current_Timestamp)
预期返回一个月前已修改的结果列表。
错误:
SQL Status: HY000
Error code: 1000
Syntax error in SQL statement
SQL Status: HY000
Error code: 1000
SQL Status: HY000
Error code: 1000
syntax error, unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE
//编辑:添加了我使用的程序
答案 0 :(得分:0)
我遇到了同样的问题。尽管已建议使用带DateAdd()的SQL语句正常工作,但LO Base会在消息框中回答该查询
SQL语句中的语法错误
相反,与查询中相同的SQL语句通过在“ Execute SQL Statement”窗口(LO Base的主窗口菜单“工具”>“ SQL…”)中运行它而成功。
最终使我的查询生效的是在工具栏或“编辑”菜单中检查“直接运行SQL命令”。 这样可以防止LO在执行之前分析SQL查询。之所以失败,是因为它不了解完整的SQL语句(firebird的DateAdd()函数),因此是上述错误的原因。