簡體   English   中英

如何獲取一列oracle sql中兩個日期之間的確切年、月、日

[英]How to get the exact year,month,date between two dates in one column oracle sql

如何獲取一列oracle sql中兩個日期之間的確切年、月、日

下面是我的查詢,目前我的輸出顯示為 0 年 11 個月 30 天,但我需要像 1 年 0 月 0 天這樣的輸出

select trunc(months_between(lease.lease_end_date,(lease.lease_start_date)) / 12) || ' Years ' || trunc(months_between(lease.lease_end_date,(trunc(lease.lease_start_date,'YY'))) - (trunc(months_between(lease.lease_end_date,(trunc(lease.lease_start_date,'YY'))) / 12) * 12)) || ' Months' ||' '|| ( trunc(lease.lease_end_date)- add_months((trunc(lease.lease_start_date,'YY')), trunc(months_between(lease.lease_end_date,(trunc(lease.lease_start_date,'YY')))))) || ' Days '
from dual 

這是我的查詢,但我的輸出顯示為 0 年 11 個月 30 天,但我想要 1 年 0 個月 0 天

您可以使用:

SELECT lease_start_date,
       lease_end_date,
       EXTRACT(YEAR FROM year_months) || ' years '
       || EXTRACT(MONTH FROM year_months) || ' months '
       || EXTRACT(DAY FROM day_time) || ' days '
       || EXTRACT(HOUR FROM day_time) || ' hours '
       || EXTRACT(MINUTE FROM day_time) || ' minutes '
       || EXTRACT(SECOND FROM day_time) || ' seconds' AS difference
FROM   (
  SELECT lease_start_date,
         lease_end_date,
         (lease_end_date - lease_start_date) YEAR TO MONTH AS year_months,
         (lease_end_date - ADD_MONTHS(lease_start_date, TRUNC(MONTHS_BETWEEN(lease_end_date, lease_start_date)))) DAY TO SECOND AS day_time
  FROM   lease
)

其中,對於樣本數據:

CREATE TABLE lease (lease_start_date, lease_end_date) AS
SELECT DATE '2020-02-29', DATE '2021-03-01' FROM DUAL UNION ALL
SELECT DATE '2020-02-29', DATE '2021-02-28' FROM DUAL UNION ALL
SELECT DATE '2020-02-28', DATE '2021-02-28' FROM DUAL UNION ALL
SELECT DATE '2020-02-01', DATE '2020-02-01' + INTERVAL '12:34:56' HOUR TO SECOND FROM DUAL

輸出:

LEASE_START_DATE LEASE_END_DATE 區別
2020-02-29 00:00:00 2021-03-01 00:00:00 1年0月1天0小時0分0秒
2020-02-29 00:00:00 2021-02-28 00:00:00 1年0月0日0時0分0秒
2020-02-28 00:00:00 2021-02-28 00:00:00 1年0月0日0時0分0秒
2020-02-01 00:00:00 2020-02-01 12:34:56 0 年 0 月 0 天 12 小時 34 分 56 秒

db<> 在這里擺弄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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