Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用日期范围问题获取的Sql查询_Sql Server - Fatal编程技术网

Sql server 使用日期范围问题获取的Sql查询

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.

这里我有这样的表格,我需要得到这种情况下的记录(如果每次转换之间有19天的差异) 我只需要获取那些记录)

有人能帮我在sql server查询中写下这个条件吗, 任何关于这件事的线索都会很好 我希望我的问题很清楚

谢谢
王子

问题不清楚,但我希望这就是你想要的:

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