Sql server 使用日期范围问题获取的Sql查询
嗨 这里我有这样的表格,我需要得到这种情况下的记录(如果每次转换之间有19天的差异) 我只需要获取那些记录) 有人能帮我在sql server查询中写下这个条件吗, 任何关于这件事的线索都会很好 我希望我的问题很清楚 谢谢Sql server 使用日期范围问题获取的Sql查询,sql-server,Sql Server,嗨 这里我有这样的表格,我需要得到这种情况下的记录(如果每次转换之间有19天的差异) 我只需要获取那些记录) 有人能帮我在sql server查询中写下这个条件吗, 任何关于这件事的线索都会很好 我希望我的问题很清楚 谢谢 王子问题不清楚,但我希望这就是你想要的: ID DateTime 634004024169995257 2010-05-10 12:29:00.000 634004024169995257 2010-05-30 12:43:00.
王子问题不清楚,但我希望这就是你想要的:
ID DateTime
634004024169995257 2010-05-10 12:29:00.000
634004024169995257 2010-05-30 12:43:00.000
634004024169995257 2010-06-19 12:24:00.000
634004024169995257 2010-06-22 13:08:00.000
634004024169995257 2010-07-19 12:41:00.000
634004024169995257 2010-07-16 12:22:00.000
634004024169995257 2010-08-25 12:19:00.000
634004024169995257 2010-08-30 11:41:00.000
634004024169995257 2010-09-28 12:37:00.000
634004024169995257 2010-09-29 12:41:00.000
634004024169995257 2010-11-01 13:14:00.000
或
您可以在CTE中执行以下操作:
Select *
from YourTable yt
WHERE EXISTS
(
SELECT *
FROM YourTable
WHERE
Id = yt.Id
AND DATEDIFF(d, [DateTime], yt.[DateTime]) = 19
)
…将myDataTable替换为实际的表名。那么结果应该是(05-10&05-30)+(06-22&07-19)+(07-16&08-25)+(08-30&09-28)?(为简洁起见,仅摘录日期)
Select *
from YourTable yt
WHERE EXISTS
(
SELECT *
FROM YourTable
WHERE
Id = yt.Id
AND DATEDIFF(d, [DateTime], yt.[DateTime]) = 19
)
WITH datarownum AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY [datetime]) AS RowCount FROM myDataTable
)
SELECT main.*, DATEDIFF (d, chk.dt, main.dt) FROM datarownum AS main
INNER JOIN datarownum chk ON chk.RowCount = main.RowCount - 1
WHERE DATEDIFF(d, chk.dt, main.dt) = 19