如何修复不一致的数据类型:预期的数字在 Oracle 中获得了日期



我正在运行的查询收到错误。我的错误是"数据类型不一致:预期数字得到日期" 我能够在SQL Server中成功做到这一点,所以我查找了如何更新Oracle语法的查询,但我遇到了问题。

我尝试TO_DATE日期字段减去 SYSDATE 的 TO_DATE,然后尝试将其除以 365 作为一年中的天数。

SELECT min.Contact,
min.MIN_DATE,
COUNT(giv.ID) AS COUNT,
SYSDATE,
TO_DATE(min.MIN_DATE,'YYYY-MM-DD')-TO_DATE(SYSDATE,'YYYY-MM-DD') AS DATEDIFF,
COUNT(giv.ID)/(TO_DATE(min.MIN_DATE,'YYYY-MM-DD')-TO_DATE(SYSDATE,'YYYY-MM-DD')/365)
FROM giv JOIN min
ON giv.Contact=min.Contact
GROUP BY min.Contact,min.MIN_DATE;

这是括号。除法优先于减法。试试这个:

COUNT(giv.ID)/((TO_DATE(min.MIN_DATE,'YYYY-MM-DD')-TO_DATE(SYSDATE,'YYYY-MM-DD'))/365)

最新更新