台灣最大程式設計社群網站
線上人數
1108
 
會員總數:246134
討論主題:189715
歡迎您免費加入會員
討論區列表 >> Oracle >> 日期 月&日
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
日期 月&日
價值 : 15 QP  點閱數:1677 回應數:3
樓主

小飛
門外漢
0 6
107 16
發送站內信

大家好

我想請問
目前我有兩個日期欄位yyyy-mm-dd

我只想用月跟日觀察這兩欄

例如 appl_date='2000-01-11' id_birthday='1988-06-10'

我想將這兩欄轉成'01-11' , '06-10'
而且不能是文字格式,因為我想判斷兩者大小以及計算兩欄差幾天

搜尋相關Tags的文章: [ 日期 ] ,
本篇文章發表於2012-04-16 21:58
== 簽名檔 ==
-------------------------------------------------------
新手上路
1樓
最有價值解答

花旗蔘
檢舉此回應
-----例子 如下 供您參考
select to_date(to_char(sysdate+1,'mm-dd'),'mm-dd')-to_date(to_char(sysdate,'mm-dd'),'mm-dd') from dual;--1
----
select to_date(to_char(sysdate+366,'mm-dd'),'mm-dd')-to_date(to_char(sysdate,'mm-dd'),'mm-dd') from dual;--1
----
select to_date(to_char(sysdate+731,'mm-dd'),'mm-dd')-to_date(to_char(sysdate,'mm-dd'),'mm-dd') from dual;--1

本篇文章回覆於2012-04-17 18:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

等等
檢舉此回應
  日期格式的變數是可以用來計算的,例:SELECT v_date1 - v_date2 FROM dual,若得到的值是正數,就表示 v_date1 較大,若為負數,則表示 v_date1 較小;再者,減出來的值就是2個日期間的天數。

  因為你只想用月跟日來觀察,那可以先將日期轉換成字串後再重新轉回日期型態,例:SELECT TO_DATE(TO_CHAR(appl_date,'mm-dd'),'mm-dd') FROM dual,這樣轉出來的日期,月日仍是原來的月日,但年度會變為系統日期的年度。

  依你的描述,用SELECT TO_DATE(TO_CHAR(appl_date,'mm-dd'),'mm-dd')-TO_DATE(TO_CHAR(id_birthday,'mm-dd'),'mm-dd') FROM dual 得到的值就是 appl_date 與 id_birthday 相差的天數,但要注意,因為是以執行當時系統日期的年度來計算,所以當年度的2月是28天或是29天對於天數的計算就有1天的差異喔。
本篇文章回覆於2012-04-18 17:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小飛
檢舉此回應
謝謝兩位~
我目前也先使用此方式計算
本篇文章回覆於2012-04-18 20:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.