[英]subtracting two years with to_char and to_number
我需要減去兩個日期。 首先,我使用 to_char 將日期字段轉換為年,然后使用 to_number 轉換為數字。 但是,減去兩年時我在查詢中遇到錯誤:
to_char((order date),'yyyy')
to_char((beginning of the year),'yyyy')
我嘗試使用轉換為數字
to_number(to_char((order date),'yyyy'),'9999')
to_number(to_char((beginning of the year),'yyyy'),'9999')
您可以使用EXTRACT
function:
EXTRACT(YEAR FROM SYSDATE) - EXTRACT(YEAR FROM order_date)
或者,如果您想獲得實際差異並衡量整年(計算月份而不僅僅是年份),那么您可以使用MONTHS_BETWEEN
並除以 12 並向下舍入:
FLOOR(MONTHS_BETWEEN(TRUNC(SYSDATE, 'YYYY'), order_date) / 12)
使用extract
; 它比你正在做的更簡單:
select extract(year from order_date) - extract(year from trunc(sysdate, 'yyyy')) as result
from some_table
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.