我正在尝试查找过去30天内未登录的所有用户,但我遗漏了一些内容。我们的想法是每天运行它并生成一个文件,以便今天的日期可变。
我认为这可行,但抱怨现在使用。
提前致谢。
select lastLogin from user.nodes where lastLogin + days < now;
答案 0 :(得分:1)
NOW
不是有效的Oracle函数。要获取当前date
,请使用sysdate
。如果要忽略时间组件,请使用trunc(sysdate)
。假设lastLogin
已编入索引,您希望避免在查询中操作lastLogin
,因为这会阻止优化程序使用索引。您希望在谓词的另一侧进行所有计算。把它们放在一起,你可能想要像
select lastLogin
from user.nodes
where lastLogin >= trunc(sysdate) - 30