2011-11-04 465 views
2

的Microsoft SQL Server 2008MONTHS_BETWEEN功能無法識別

select months_between 
    (TO_DATE('1992-09-12','yyyy','mm','dd'), TO_DATE('1991-08-23','yyyy','mm','dd')) "months" 
    from sales 

幫助

+0

它顯示MONTHS_BETWEEN是不可識別的功能。 – Dinesh

+3

這是一個Oracle函數,而不是SQL Server。 –

回答

4

在SQL Server 2008中,使用DATEDIFF()

SELECT DATEDIFF(mm, '23-08-1991', '12-09-1992') as "months" 
FROM sales 

我覺得MONTHS_BETWEEN是甲骨文。

2

從未聽說過TSQL中的months_between。

我通常是這樣的(使用你在你的代碼中提供的日期):

SELECT DATEDIFF(month, '23-8-1991', '12-9-1992') 
2

MONTHS_BETWEEN是Oracle特有的。相當於Oracle的MONTHS_BETWEEN函數在SQL Server中是DATEDIFF函數。的DATEDIFF函數返回兩個指定日期之間交叉的日期和時間邊界數,它需要3個參數:

DATEDIFF (datepart, startdate, enddate)