sql查询语法与日期有关

时间:2014-02-28 19:36:05

标签: sql oracle syntax

我正在尝试查找过去30天内未登录的所有用户,但我遗漏了一些内容。我们的想法是每天运行它并生成一个文件,以便今天的日期可变。

我认为这可行,但抱怨现在使用。

提前致谢。

select lastLogin from user.nodes where lastLogin + days < now;

1 个答案:

答案 0 :(得分:1)

NOW不是有效的Oracle函数。要获取当前date,请使用sysdate。如果要忽略时间组件,请使用trunc(sysdate)。假设lastLogin已编入索引,您希望避免在查询中操作lastLogin,因为这会阻止优化程序使用索引。您希望在谓词的另一侧进行所有计算。把它们放在一起,你可能想要像

这样的东西
select lastLogin 
  from user.nodes 
 where lastLogin >= trunc(sysdate) - 30