首頁  >  問答  >  主體

使用 AND 運算子增強日期計算

我確信這是一個簡單的修復方法,但我在任何地方都找不到它。我正在嘗試使用 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粉554842091P粉554842091211 天前308

全部回覆(1)我來回復

  • P粉308089080

    P粉3080890802024-03-23 10:52:05

    重複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 < date_opened
    )
    where date_diff > 1
    

    回覆
    0
  • 取消回覆