使用 AND 运算符增强日期计算
P粉554842091
P粉554842091 2024-03-22 12:11:14
0
1
348

我确信这是一个简单的修复方法,但我在任何地方都找不到它。我正在尝试使用 AND 来影响查询的结果。查询如下。

select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff
from table1
where log_in < date_opened;

所以第一个查询工作正常。它只给我log_in日期小于date_opened的行,然后是两者之间的总天数差异,这很棒。但是,我希望在查询中添加 AND 以排除某些总计。例如下面的例子:

select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff
from table1
where log_in < date_opened and date_diff > 1;

问题是别名列 date_diff 未被识别为真实列,因此我收到一条错误消息。我尝试使用 HAVING 而不是 AND,但这不起作用(不是我想象的那样)。我基本上想排除零的行。有人知道我会用什么来代替“and date_diff > 1”吗?

P粉554842091
P粉554842091

全部回复(1)
P粉308089080

重复 where 子句中的表达式(即使用 datediff(log_in, date_opened) > 1 而不是 date_diff > 1),或者使用派生表,然后在封闭的查询中添加条件。

使用派生表的示例:

select first_name, log_in, date_opened, date_diff
from (
    select first_name, log_in, date_opened, datediff(log_in, date_opened) as date_diff
    from table1
    where log_in  1
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板