繁体   English   中英

寻找一个getdate / dateadd陈述式来做1年+/- 15天

Looking for a getdate/dateadd statement to do 1 year and +/- 15 days

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

-这是我当前的代码,它使我可以查看过去一周内提交的所有工作订单,并让我知道是否有相同的工作订单出现在6个月前。

SELECT 
  A.tagnumber, 
  count(*) AS CountTotal
FROM 
  v_workorder A 
WHERE 
  --Date range Within Today and 6 months ago
  wo_requestDate BETWEEN DATEADD(month, -6, GETDATE()) AND GETDATE() 
  AND
    EXISTS 
    ( -- Date range Within Today and 7 days ago
      select 
        tagnumber 
      FROM 
        v_workorder 
      WHERE 
        wo_requestDate BETWEEN DATEADD(DAY,-7,GETDATE()) AND GETDATE() 
    ) 
  AND
  A.wc_description = 'Corrective'       
  AND           
  A.itemtype_name = 'Building'
GROUP BY A.tagnumber
ORDER BY CountTotal DESC

-但是,现在我要获取getdate / adddate的第一个变量。 要检查1年前,+ /-15天。 因此基本上是1年15天,而不是6个月。

2 个回复

过去1年+/- 15天

SELECT A.tagnumber, count(*) AS CountTotal
 FROM v_workorder A 
 WHERE wo_requestDate BETWEEN DATEADD(day, -15, DATEADD(year, -1, GETDATE())) AND DATEADD(day, 15, DATEADD(year, -1, GETDATE()))
    AND
        EXISTS ( select tagnumber FROM v_workorder WHERE  wo_requestDate BETWEEN DATEADD(DAY,-7,GETDATE()) AND GETDATE() )
    AND
            A.wc_description = 'Corrective'     AND         A.itemtype_name = 'Building'
 GROUP BY A.tagnumber
 ORDER BY CountTotal DESC

一年

SELECT ...
FROM ...
WHERE wo_requestDate BETWEEN DATEADD(year, -1, GETDATE()) AND GETDATE()
AND...;

15天

SELECT ...
FROM ...
WHERE wo_requestDate BETWEEN DATEADD(day, -15, GETDATE()) AND GETDATE()
AND...;

DATEADD()其他可能选项

year
quarter
month
dayofyear
day
week
weekday
hour
minute
second
millisecond

在这里查看更多。

要消除datetime的时间部分的问题,请执行以下操作:

CAST(GETDATE() AS DATE

查找一年前的日期:

SELECT DATEADD(YEAR, -1, CAST(GETDATE() AS DATE));

从那里减去15天,然后在终点增加15天。

...
WHERE 
  wo_requestDate >= DATEADD(DAY, -15, DATEADD(YEAR, -1, CAST(GETDATE() AS DATE)))
  AND
  wo_requestDate < DATEADD(DAY, 15, DATEADD(YEAR, -1, CAST(GETDATE() AS DATE)))

我更喜欢>=<而不是BETWEEN ,尤其是对于日期,只是为了避免与时间成分有任何歧义,因此,如果希望范围包括第15天,则可能需要在最后一个参数中添加16天。

1 寻找此Select陈述式的Delete陈述式

我有一个正在生产的数据库,已经被引入进行更改。 一切顺利,除了我无法执行DELETE。 我知道这是因为连接和错误的引用。 完整性等,但我无法真正改变。 下面的select语句执行没有问题,并显示在gridview中: 我希望使用生成的表中的删除链接如果我没有提供足够的信息,请告诉 ...

5 案例陈述,寻找一个价值

我试图显示每个ID一行,但它返回三行。 如果ID为“ y”,则应显示“ y”。 如果显示“ y”和“ r”,则应为“ y”。 如果它具有“ y”,“ r”,“ n”,则应为“ y”。 如果它只是id和'r',则应该是'r'和id,然后只是'n',然后是'n'。 我似 ...

6 Getdate(), -1 天

我不明白为什么,但不知何故此查询不起作用。 我想取系统日期 -1 天,其中 sysdate 比当前日期小 1 天。 ...

9 在SQL中寻找参数选择IF陈述式

我已经找到了执行此操作的函数,但是现在我遇到了这个问题,我需要解析用户输入的参数,用户将输入类似11234#Elgin,address1,Address2的内容,我需要从中取出数字和#第一个参数使我只剩下Elgin,我的函数如下所示: 我在想类似的东西: 但是对于语法以及如何在我 ...

10 SQL Server梳理datepart与getdate和dateadd

我正在SQL Server 2008 R2中制作存储过程。 已经完成了SELECT并完成了所有工作,但是将我的datepart与Dateadd和getdate结合使用时遇到了一些问题。 问题是我想在查询中像这样显示它。 2013-06 2013-07 2013-08 所以我尝试使 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM