我有一个这样的查询:
SELECT DATEDIFF(minute,t.Paydate,t.DelDate) as Mtime
FROM Transaction_tbl t WHERE Locid=6
Run Code Online (Sandbox Code Playgroud)
这将返回如下结果:
Mtime
8
2
10
20
15
7
6
Run Code Online (Sandbox Code Playgroud)
但是,在该查询中,我必须给出条件,例如我只想显示小于 10 分钟或小于 15 分钟的结果。我还有一张桌子,它是location。在那,我有一个数据类型Time(0)的列timeinterval。实际上这个值我想在同一个查询中传递。那么我如何在不到 10 分钟的时间内重写我的查询显示结果呢?
AND在WHERE子句中添加条件:
SELECT
DATEDIFF(MINUTE, t.Paydate, t.DelDate) AS Mtime
FROM Transaction_tbl t
WHERE
Locid = 6
AND DATEDIFF(MINUTE,t.Paydate,t.DelDate) < 10
Run Code Online (Sandbox Code Playgroud)
根据您的新疑问:
SELECT
DATEDIFF(MINUTE, t.Paydate, t.DelDate) AS Mtime,
COUNT(*) AS Count
FROM Transaction_tbl t
WHERE
Locid = 6
GROUP BY Mtime
HAVING DATEDIFF(MINUTE, t.Paydate, t.DelDate) < 10
Run Code Online (Sandbox Code Playgroud)
你可以做这样的事情
SELECT
case when ( DATEDIFF(MINUTE, t.Paydate, t.DelDate)<10) then DATEDIFF(MINUTE, t.Paydate, t.DelDate) else null end AS lessthan10,
case when ( DATEDIFF(MINUTE, t.Paydate, t.DelDate)>10) then DATEDIFF(MINUTE, t.Paydate, t.DelDate) else null end AS greaterthan10,
COUNT(*) AS Count
FROM Transaction_tbl t
WHERE
Locid = 6
GROUP BY Mtime
HAVING DATEDIFF(MINUTE, t.Paydate, t.DelDate) < 10
Run Code Online (Sandbox Code Playgroud)