首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CASE GETDATE() - sql server中的GETDATE()

CASE GETDATE() - sql server中的GETDATE()
EN

Stack Overflow用户
提问于 2020-09-10 00:03:55
回答 2查看 79关注 0票数 0

有人能解释一下下面的例子吗?

查询

代码语言:javascript
复制
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]

输出

代码语言:javascript
复制
Result  Result1 Result2 Result3
1        1      0       0

我想知道ResultResult1如何拥有1和else 0

实际查询

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2020-09-10 01:58:02

如果你不介意的话,我建议用这种方式来缩短查询。

代码语言:javascript
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2020-09-10 01:51:00

在上下文有限的情况下,我将尝试解释查询。

它试图计算今天和账单日期之间的日期差异,然后根据这一差异将日期差异分为4组:

  • 在31天内
  • 31- 60天
  • 61- 90天
  • 超过90天
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63815425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档