評價: 2 回應: 2 閱覽: 139
置頂

SQL的小問題

大家好,胎尬賀

如標題,在這邊請教各位大神幫忙解惑了

剛從書上看到一段SQL日期的語言 

這段是在求哪一段日期?

有看沒有懂耶 
 

交易日 BETWEEN TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,-4))+1) AND TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,-3))) 


其中 "TRUNC" 是做甚麼用的?

有什麼特別的意思嗎?

熱門回應

ADD_MONTHS(SYSDATE,-4) => 倒退4個月 
LAST_DAY         => 取該月最後一天 
LAST_DAY( ) + 1       => 取該月最後一天+1 = 下個月第一天 
TRUNC( )          => 取整數,用在日期上表示捨去時分秒,變成該日的00:00 
  
若以今日9/19為準,執行此SQL會變成查詢6/1 00:00:00到6/27 00:00:00, 
注意:6/27的交易資料因〔時分秒>00:00:00〕不會進來,故為6/1-6/26的資料。 
  
因此寫成這樣,結果會一模一樣: 
交易日 BETWEEN TRUNC(ADD_MONTHS(SYSDATE,-3), 'mm')

AND TRUNC(ADD_MONTHS(SYSDATE,-2), 'mm')-4 

我看是一塊綠豆糕  

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言