Sql server 2008 使用游标了解两个日期之间的天数

Sql server 2008 使用游标了解两个日期之间的天数,sql-server-2008,tsql,Sql Server 2008,Tsql,我有一张这样的桌子 SELECT V_EP_ID,V_START_DATE,V_END_DATE FROM PGATEINTRA.dbo.EMPLOYEE_VACATIONS ORDER BY V_EP_ID ASC SELECT * FROM PGATEINTRA.dbo.EMPLOYEE_VACATIONS WHERE V_START_DATE >='2010-06-21 00:00:00' AND V_END_DATE <= '2010-06-21 00:00:

我有一张这样的桌子

SELECT V_EP_ID,V_START_DATE,V_END_DATE 
FROM PGATEINTRA.dbo.EMPLOYEE_VACATIONS 
ORDER BY V_EP_ID ASC
SELECT * FROM PGATEINTRA.dbo.EMPLOYEE_VACATIONS 
WHERE V_START_DATE >='2010-06-21 00:00:00' 
   AND V_END_DATE <= '2010-06-21 00:00:00'
上述查询的输出为

V_EP_ID     V_START_DATE             V_END_DATE
------------------------------------------------------
28        2010-06-21 00:00:00     2010-06-21 00:00:00
103       2011-06-27 00:00:00     2011-06-27 00:00:00
103       2011-08-12 00:00:00     2011-08-12 00:00:00
104       2011-03-24 00:00:00     2011-03-24 00:00:00
104       2011-05-06 00:00:00     2011-05-06 00:00:00
104       2010-06-07 00:00:00     2010-06-08 00:00:00
104       2011-02-23 00:00:00     2011-02-25 00:00:00
...
我是这样写的

SELECT V_EP_ID,V_START_DATE,V_END_DATE 
FROM PGATEINTRA.dbo.EMPLOYEE_VACATIONS 
ORDER BY V_EP_ID ASC
SELECT * FROM PGATEINTRA.dbo.EMPLOYEE_VACATIONS 
WHERE V_START_DATE >='2010-06-21 00:00:00' 
   AND V_END_DATE <= '2010-06-21 00:00:00'

我希望输出能够从PGATEINTRA.dbo.EMPLOYEE_休假中动态获取V_开始日期和V_结束日期之间的所有V_EP_ID。

我不知道游标在这里起作用的地方,但我认为您需要的是DATEDIFF函数:

WHERE DATEDIFF(DAY, V_START_DATE, V_END_DATE) = 0

你说的动态是什么意思?那些帽子是怎么回事?@Oded:上帝保佑你。现在它实际上是可读的。