簡體   English   中英

CASE GETDATE() - SQL Server 中的 GETDATE()

[英]CASE GETDATE() - GETDATE() in sql server

誰能解釋下面的例子?

詢問

SELECT (CASE WHEN (GETDATE() - GETDATE()) < 31 THEN  1 ELSE 0 END) [Result],
(CASE WHEN (GETDATE() - '2020-08-30') < 31 THEN  1 ELSE 0 END) [Result1],
(CASE WHEN (GETDATE() - '2020-07-30') < 31 THEN  1 ELSE 0 END) [Result2],
(CASE WHEN (GETDATE() - '2020-07-30') < 31 THEN  1 ELSE 0 END) [Result3]

輸出

Result  Result1 Result2 Result3
1        1      0       0

我想知道ResultResult11還是0

實際查詢

SELECT  ((CASE WHEN (GETDate()-[InvBillDate])<31 then 1 
else 
(case when (GETDate()-[InvBillDate])<61 And (GETDate()-[InvBillDate])>30 then 2 
else 
(case when (GETDate()-[InvBillDate])<91 And (GETDate()-[InvBillDate])>60 then 3 
else 4 end) 
end) end)) AS [ColNo] 
FROM [dbo].[Invoice] (NOLOCK)

如果你不介意,我建議用這種方式來縮短查詢。

SELECT (
       (CASE WHEN (GETDate()-[InvBillDate])<31 then 1 
       else 
       (case when (GETDate()-[InvBillDate])<61 then 2 
       else 
       (case when (GETDate()-[InvBillDate])<91 then 3 
       else 4 
       end) end) end)
       ) AS [ColNo] 
FROM [dbo].[Invoice] (NOLOCK)

在有限的上下文中,我將嘗試解釋查詢。

它試圖計算今天和計費日期之間的日期差異,然后基於此將日期差異分為 4 組:

  • 31天內
  • 31 - 60 天
  • 61 - 90 天
  • 超過 90 天

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM