我有一個表EMP
,我需要它們的HIREDATE
到現在的月份差異。如何在SQL Server 2008中使用months_between函數?
我用MONTHS_BETWEEN
功能,我寫這條SQL語句:
SELECT
HIREDATE, SYSDATE, MONTHS_BETWEEN (SYSDATE, HIREDATE) AS DIFF
FROM
EMP
輸出
HIREDATE SYSDATE DIFF
--------- --------- ----------
17-DEC-80 31-JAN-14 397.452866
20-FEB-81 31-JAN-14 395.356092
22-FEB-81 31-JAN-14 395.291576
02-APR-81 31-JAN-14 393.936737
但我需要在SQL Server 2008中相同的輸出,我嘗試使用DATEDIFF
功能是這樣的:
Declare @Date1 datetime
Declare @Date2 datetime
set @Date1 = (SELECT GETDATE());
set @Date2 = (SELECT HIREDATE FROM SCOTT.EMP)
SELECT
DATEDIFF(MONTH, @Date1, @Date2) AS DifferenceOfDay
但我得到了錯誤信息:
Msg 512,Level 16,State 1,Line 6
子查詢返回的值超過1。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的。
請幫我在SQL Server 2008中編寫查詢,以獲得相同的輸出...
set @ Date2 =(SELECT HIREDATE FROM SCOTT.EMP) 將返回多行。這將失敗。 – abhi
您可以獲得當日差價並將其轉換爲月份。 – Maverick