我有一个正在生产的数据库,已经被引入进行更改。 一切顺利,除了我无法执行DELETE。 我知道这是因为连接和错误的引用。 完整性等,但我无法真正改变。 下面的select语句执行没有问题,并显示在gridview中: 我希望使用生成的表中的删除链接如果我没有提供足够的信息,请告诉 ...
提示:本站收集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个月。
过去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天。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.