要知道使用光标的两个日期之间的天数

时间:2012-04-05 15:34:24

标签: 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

上述查询的输出是

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 * 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_VACATIONS传递v_start_date和v_end_date

我将输出作为

V_ID  V_TYPE  V_EP_ID V_REASON      V_START_DATE         V_END_DATE
----------------------------------------------------------------------------
3      c        28     Took leave   2010-06-21 00:00:00  2010-06-21 00:00:00
7      c       109     Took leave   2010-06-21 00:00:00  2010-06-21 00:00:00

我希望输出动态地在V_START_DATE和V_END_DATE之间获取所有V_EP_ID FROM PGATEINTRA.dbo.EMPLOYEE_VACATIONS。

1 个答案:

答案 0 :(得分:1)

我不知道游标在哪里发挥作用,但我认为你需要的是DATEDIFF函数:

WHERE DATEDIFF(DAY, V_START_DATE, V_END_DATE) = 0