簡體   English   中英

用 to_char 和 to_number 減去兩年

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM