oracle-查詢優化改寫-日期操作
阿新 • • 發佈:2020-12-08
日期型別: oracle中常用的型別有兩個:DATE和TIMESTAMP. DATE精確到秒。 TIMESTAMP可以儲存到秒的小數。
select current_date,current_timestamp from dual;
current_date current_timestamp
2020-12-07 11:30:30. 2020-12-07 11:30:30.089563
-
date:型別相見的到的結果為整型,單位是天。
-
timestamp:型別相減或timestamp與date相減的到的結果型別為interval。
-
timestamp與數值加減後的到的是date型別,損失了精讀,如果要保留精度可以改用時間間隔型別(interval)
-
月份加減不能使用interval型別:
~~
列舉一些常用的oracle中的時間取值方式,希望對大家有用。
~~
select hiredate, to_number(to_char(hiredate,'hh24')) 時, to_number(to_char(hiredate,'mi')) 分, to_number(to_char(hiredate,'ss')) 秒, to_number(to_char(hiredate,'dd')) 日, to_number(to_char(hiredate,'mm')) 月, to_number(to_char(hiredate,'yyyy')) 年, to_number(to_char(hiredate,'ddd')) 年內第幾天, trunc(hiredate,'dd') 一天之始, trunc(hiredate,'day') 周初, trunc(hiredate,'mm') 月初, last_day(hiredate) 月末, add_months(trunc(hiredate,'mm'),1) 下月初, trunc(hiredate,'yy') 年初, to_char(hiredate,'day') 周幾, to_char(hiredate,'month') 月份 from (select hiredate+30/24/60/60+20/24/60+5/24/ as hiredate from emp where rownum<=1)