1. 程式人生 > 其它 >oracle-查詢優化改寫-日期操作

oracle-查詢優化改寫-日期操作

技術標籤:【資料庫】oracle

日期型別: 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
  1. date:型別相見的到的結果為整型,單位是天。

  2. timestamp:型別相減或timestamp與date相減的到的結果型別為interval。

  3. timestamp與數值加減後的到的是date型別,損失了精讀,如果要保留精度可以改用時間間隔型別(interval)

  4. 月份加減不能使用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)