当前位置: 首页 > 面试题库 >

我可以在Where子句中使用Firebird DateAdd函数吗?

江德海
2023-03-14
问题内容

在firebird中,我可以DateAdd在where子句中使用该函数吗?我有以下sql;

select
  s.number,
  s.warranty_start
from
  serial_number s
where
  s.warranty_start > dateadd(year, -3, 'now')

我得到错误;

expression evaluation not supported

问题答案:

您的第三个参数无效。

select
  s.number,
  s.warranty_start
from
  serial_number s
where
  s.warranty_start > dateadd(year, -3, current_timestamp)

'now'是只能与date关键字(例如)一起使用的字符串文字date 'now'。因此,而不是current_timestamp您需要编写date“ now”。

current_timestamp如果两者均等效,我更喜欢使用标准SQL函数,而不是使用DBMS特定函数。



 类似资料:
  • 问题内容: 我需要在WHERE子句中使用别名,但它一直告诉我它的未知列。有什么办法可以解决这个问题?我需要选择评级高于x的记录。评分的计算方法如下: 问题答案: 您可以使用HAVING子句,该子句 可以 看到别名,例如 但是在where子句中,您需要重复您的表达式,例如 但!并非所有的表达式都被允许-使用像SUM这样的聚合函数将不起作用,在这种情况下,您将需要使用HAVING子句。 从MySQL手

  • 问题内容: 我想检查布尔值是否为真,然后在WHERE子句中确定要使用的条件。 假设布尔变量是@checkbool: 有否否定条件的方法?像在C ++中一样,您可以执行!(condition)。 如果不是,解决此问题的最佳方法是什么? 谢谢! 问题答案: SQL在C中的等效项是。但是,在您的情况下,您还需要其他东西:您需要建立一个条件,该条件根据的值在两个选择之间做出决定,如下所示:

  • 问题内容: 在WHERE子句中有使用SELECT语句描述的名称吗?这是好/不好的做法吗? 这会是更好的选择吗? 它远没有那么优雅,但是运行起来比以前的版本要快。我不喜欢它,因为它在GUI中没有非常清晰地显示(并且SQL初学者需要理解它)。我可以将其分为两个独立的查询,但是随后事情变得混乱了…… 注意:我不仅需要日期和分数(例如姓名) 问题答案: 称为相关子查询。它有它的用途。

  • 我有一个函数用3 where子句条件显示数据。但是这个输出是无效的。我有4个数据,只显示了1个。此函数如下所示: 这个数据只显示1,但在数据库中我有这么多的数据。有什么不对,如何解决?谢谢

  • 问题内容: 为什么此SQL不起作用? 这: 子句只是从搜索点计算顺序。 我正在将其别名(因为它太长了)到“距离”。 在这里,我用冗长的短语替换了“ Distance <30”,它可以正常工作。 我什至可以对列别名进行ORDER BY,这行得通!!? 我究竟做错了什么? 问题答案: 发生这种情况是由于自然的查询处理顺序,如下所示: | 您要在语句中分配别名。如您所见,它是在处理之前和之后处理的。那就

  • 问题内容: 我想在Derby数据库中模拟以下类型的查询(即Microsoft SQL Server语法)的效果。目标是返回表中存储在“ someColumn”中的日期少于7天的所有记录。这是我希望实现的Microsoft SQL语法… 我已经能够确定在Derby中它将涉及使用timestampdiff函数。但是我不知道Derby中WHERE子句中函数用法的语法,因此我找不到任何示例。我发现了很多在