[英]Difference in days between 2 dates Oracle SQL
好吧,所以我在stackoverflow上檢查了很多其他帖子,看看是否在任何地方都提到過這個帖子,並且提供的答案對我來說沒有意義......我在想他們正在談論完全不同的事情。
以下是我想要做的事情,使用Oracle SQL Developer:
- 從purch_date中檢索條目
- 獲取當前年份的purch_date和聖誕節之間的差異
* *所以,因此'2012'不能在那里進行硬編碼。 我需要檢索它。
這是在MySQL中100%工作的查詢:
SELECT purch_id AS PURCH_ID,
DATEDIFF(CONCAT(YEAR(NOW()),'-12-25'), purch_date) AS DAYS_TO_CHRISTMAS
FROM CS260USER.candy_purchase;
差不多,我需要在Oracle工作。
誰能幫我這個?
非常感謝!
-馬修
假設purch_date
被定義為DATE
SELECT purch_id,
(trunc(sysdate, 'YYYY') +
interval '11' month +
interval '24' day) -
purch_date days_to_christmas
FROM CS260USER.candy_purchase;
幾個筆記
purch_date
具有時間組件,您可能希望截斷日期減法的結果。 purch_date
是12月30日,我想要的結果是在下一個聖誕節前360天,而不是直到最后一個聖誕節的-5天。 最簡單的方法是在oracle中編寫一個像DATEDIFF一樣的函數,id就像這樣:
function datediff( p_what in varchar2, p_d1 in date, p_d2 in date) return number as l_result number;
BEGIN
select (p_d2-p_d1) *
decode( upper(p_what), 'SS', 24*60*60, 'MI', 24*60, 'HH', 24, NULL )
into l_result from dual;
return l_result;
END;
並調用此函數,如:
DATEDIFF('YYYY-MM-DD', SYSTIMESTAMP, SYSTIMESTAMP)
在你的sql命令中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.