濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > Oracle中TO_DATE格式介紹

Oracle中TO_DATE格式介紹

熱門標(biāo)簽:淘寶地圖標(biāo)注如何做 蘇州銷售外呼系統(tǒng)預(yù)算 外呼系統(tǒng)用員工身份證 保山電話外呼管理系統(tǒng)怎么用 使用智能電話機(jī)器人違法嗎 電話機(jī)器人廣告話術(shù) 太原外呼電銷機(jī)器人費(fèi)用 朝陽市地圖標(biāo)注 東莞語音電銷機(jī)器人排名

TO_DATE格式(以時(shí)間:2007-11-0213:45:25為例)

Year:
yytwodigits兩位年顯示值:07
yyythreedigits三位年顯示值:007
yyyyfourdigits四位年顯示值:2007

Month:
mmnumber兩位月顯示值:11
monabbreviated字符集表示顯示值:11月,若是英文版,顯示nov
monthspelledout字符集表示顯示值:11月,若是英文版,顯示november

Day:
ddnumber當(dāng)月第幾天顯示值:02
dddnumber當(dāng)年第幾天顯示值:02
dyabbreviated當(dāng)周第幾天簡寫顯示值:星期五,若是英文版,顯示fri
dayspelledout當(dāng)周第幾天全寫顯示值:星期五,若是英文版,顯示friday
ddspthspelledout,ordinaltwelfth

Hour:
hhtwodigits12小時(shí)進(jìn)制顯示值:01
hh24twodigits24小時(shí)進(jìn)制顯示值:13

Minute:
mitwodigits60進(jìn)制顯示值:45

Second:
sstwodigits60進(jìn)制顯示值:25

其它
Qdigit季度顯示值:4
WWdigit當(dāng)年第幾周顯示值:44
Wdigit當(dāng)月第幾周顯示值:1

24小時(shí)格式下時(shí)間范圍為:0:00:00-23:59:59....
12小時(shí)格式下時(shí)間范圍為:1:00:00-12:59:59....

1.日期和字符轉(zhuǎn)換函數(shù)用法(to_date,to_char)

selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss')asnowTimefromdual;//日期轉(zhuǎn)化為字符串
selectto_char(sysdate,'yyyy')asnowYearfromdual;//獲取時(shí)間的年
selectto_char(sysdate,'mm')asnowMonthfromdual;//獲取時(shí)間的月
selectto_char(sysdate,'dd')asnowDayfromdual;//獲取時(shí)間的日
selectto_char(sysdate,'hh24')asnowHourfromdual;//獲取時(shí)間的時(shí)
selectto_char(sysdate,'mi')asnowMinutefromdual;//獲取時(shí)間的分
selectto_char(sysdate,'ss')asnowSecondfromdual;//獲取時(shí)間的秒
selectto_date('2004-05-0713:23:44','yyyy-mm-ddhh24:mi:ss')fromdual//
2.
selectto_char(to_date(222,'J'),'Jsp')fromdual

顯示TwoHundredTwenty-Two
3.求某天是星期幾
selectto_char(to_date('2002-08-26','yyyy-mm-dd'),'day')fromdual;
星期一
selectto_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE=American')fromdual;
monday
設(shè)置日期語言
ALTERSESSIONSETNLS_DATE_LANGUAGE='AMERICAN';
也可以這樣
TO_DATE('2002-08-26','YYYY-mm-dd','NLS_DATE_LANGUAGE=American')

4.兩個(gè)日期間的天數(shù)
selectfloor(sysdate-to_date('20020405','yyyymmdd'))fromdual;

5.時(shí)間為null的用法
selectid,active_datefromtable1
UNION
select1,TO_DATE(null)fromdual;

注意要用TO_DATE(null)
6.月份差
a_datebetweento_date('20011201','yyyymmdd')andto_date('20011231','yyyymmdd')
那么12月31號(hào)中午12點(diǎn)之后和12月1號(hào)的12點(diǎn)之前是不包含在這個(gè)范圍之內(nèi)的。
所以,當(dāng)時(shí)間需要精確的時(shí)候,覺得to_char還是必要的

7.日期格式?jīng)_突問題
輸入的格式要看你安裝的ORACLE字符集的類型,比如:US7ASCII,date格式的類型就是:'01-Jan-01'
altersystemsetNLS_DATE_LANGUAGE=American
altersessionsetNLS_DATE_LANGUAGE=American
或者在to_date中寫
selectto_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE=American')fromdual;
注意我這只是舉了NLS_DATE_LANGUAGE,當(dāng)然還有很多,
可查看
select*fromnls_session_parameters
select*fromV$NLS_PARAMETERS
8.
selectcount(*)
from(selectrownum-1rnum
fromall_objects
whererownum=to_date('2002-02-28','yyyy-mm-dd')-to_date('2002-
02-01','yyyy-mm-dd')+1
)
whereto_char(to_date('2002-02-01','yyyy-mm-dd')+rnum-1,'D')
notin('1','7')

查找2002-02-28至2002-02-01間除星期一和七的天數(shù)
在前后分別調(diào)用DBMS_UTILITY.GET_TIME,讓后將結(jié)果相減(得到的是1/100秒,而不是毫秒).

9.查找月份
selectmonths_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY'))"MONTHS"FROMDUAL;
1
selectmonths_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY'))"MONTHS"FROMDUAL;
1.03225806451613

10.Next_day的用法
Next_day(date,day)

Monday-Sunday,forformatcodeDAY
Mon-Sun,forformatcodeDY
1-7,forformatcodeD
11
selectto_char(sysdate,'hh:mi:ss')TIMEfromall_objects
注意:第一條記錄的TIME與最后一行是一樣的
可以建立一個(gè)函數(shù)來處理這個(gè)問題
createorreplacefunctionsys_datereturndateis
begin
returnsysdate;
end;

selectto_char(sys_date,'hh:mi:ss')fromall_objects;

12.獲得小時(shí)數(shù)
extract()找出日期或間隔值的字段值
SELECTEXTRACT(HOURFROMTIMESTAMP'2001-02-162:38:40')fromoffer
SQL>selectsysdate,to_char(sysdate,'hh')fromdual;

SYSDATETO_CHAR(SYSDATE,'HH')
-----------------------------------------
2003-10-1319:35:2107

SQL>selectsysdate,to_char(sysdate,'hh24')fromdual;

SYSDATETO_CHAR(SYSDATE,'HH24')
-------------------------------------------
2003-10-1319:35:2119

13.年月日的處理
selectolder_date,
newer_date,
years,
months,
abs(
trunc(
newer_date-
add_months(older_date,years*12+months)
)
)days

from(select
trunc(months_between(newer_date,older_date)/12)YEARS,
mod(trunc(months_between(newer_date,older_date)),12)MONTHS,
newer_date,
older_date
from(
selecthiredateolder_date,add_months(hiredate,rownum)+rownumnewer_date
fromemp
)
)
14.處理月份天數(shù)不定的辦法
selectto_char(add_months(last_day(sysdate)+1,-2),'yyyymmdd'),last_day(sysdate)fromdual

16.找出今年的天數(shù)
selectadd_months(trunc(sysdate,'year'),12)-trunc(sysdate,'year')fromdual
閏年的處理方法
to_char(last_day(to_date('02'||:year,'mmyyyy')),'dd')
如果是28就不是閏年

17.yyyy與rrrr的區(qū)別
'YYYY99TO_C
-----------
yyyy990099
rrrr991999
yyyy010001
rrrr012001

18.不同時(shí)區(qū)的處理
selectto_char(NEW_TIME(sysdate,'GMT','EST'),'dd/mm/yyyyhh:mi:ss'),sysdate
fromdual;

19.5秒鐘一個(gè)間隔
SelectTO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300)*300,'SSSSS'),TO_CHAR(sysdate,'SSSSS')
fromdual
2002-11-19:55:0035786
SSSSS表示5位秒數(shù)

20.一年的第幾天
selectTO_CHAR(SYSDATE,'DDD'),sysdatefromdual
3102002-11-610:03:51

21.計(jì)算小時(shí),分,秒,毫秒
select
Days,
A,
TRUNC(A*24)Hours,
TRUNC(A*24*60-60*TRUNC(A*24))Minutes,
TRUNC(A*24*60*60-60*TRUNC(A*24*60))Seconds,
TRUNC(A*24*60*60*100-100*TRUNC(A*24*60*60))mSeconds
from
(
select
trunc(sysdate)Days,
sysdate-trunc(sysdate)A
fromdual
)

select*fromtabname
orderbydecode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');

//
floor((date2-date1)/365)作為年
floor((date2-date1,365)/30)作為月
d(mod(date2-date1,365),30)作為日.

23.next_day函數(shù)返回下個(gè)星期的日期,day為1-7或星期日-星期六,1表示星期日
next_day(sysdate,6)是從當(dāng)前開始下一個(gè)星期五。后面的數(shù)字是從星期日開始算起。
1234567
日一二三四五六

---------------------------------------------------------------

select(sysdate-to_date('2003-12-0312:55:45','yyyy-mm-ddhh24:mi:ss'))*24*60*60fromddual
日期返回的是天然后轉(zhuǎn)換為ss

24,round[舍入到最接近的日期](day:舍入到最接近的星期日)
selectsysdateS1,
round(sysdate)S2,
round(sysdate,'year')YEAR,
round(sysdate,'month')MONTH,
round(sysdate,'day')DAYfromdual

25,trunc[截?cái)嗟阶罱咏娜掌?單位為天],返回的是日期類型
selectsysdateS1,
trunc(sysdate)S2,//返回當(dāng)前日期,無時(shí)分秒
trunc(sysdate,'year')YEAR,//返回當(dāng)前年的1月1日,無時(shí)分秒
trunc(sysdate,'month')MONTH,//返回當(dāng)前月的1日,無時(shí)分秒
trunc(sysdate,'day')DAY//返回當(dāng)前星期的星期天,無時(shí)分秒
fromdual

26,返回日期列表中最晚日期
selectgreatest('01-1月-04','04-1月-04','10-2月-04')fromdual

27.計(jì)算時(shí)間差
注:oracle時(shí)間差是以天數(shù)為單位,所以換算成年月,日

selectfloor(to_number(sysdate-to_date('2007-11-0215:55:03','yyyy-mm-ddhh24:mi:ss'))/365)asspanYearsfromdual//時(shí)間差-年
selectceil(moths_between(sysdate-to_date('2007-11-0215:55:03','yyyy-mm-ddhh24:mi:ss')))asspanMonthsfromdual//時(shí)間差-月
selectfloor(to_number(sysdate-to_date('2007-11-0215:55:03','yyyy-mm-ddhh24:mi:ss')))asspanDaysfromdual//時(shí)間差-天
selectfloor(to_number(sysdate-to_date('2007-11-0215:55:03','yyyy-mm-ddhh24:mi:ss'))*24)asspanHoursfromdual//時(shí)間差-時(shí)
selectfloor(to_number(sysdate-to_date('2007-11-0215:55:03','yyyy-mm-ddhh24:mi:ss'))*24*60)asspanMinutesfromdual//時(shí)間差-分
selectfloor(to_number(sysdate-to_date('2007-11-0215:55:03','yyyy-mm-ddhh24:mi:ss'))*24*60*60)asspanSecondsfromdual//時(shí)間差-秒

28.更新時(shí)間
注:oracle時(shí)間加減是以天數(shù)為單位,設(shè)改變量為n,所以換算成年月,日
selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss'),to_char(sysdate+n*365,'yyyy-mm-ddhh24:mi:ss')asnewTimefromdual//改變時(shí)間-年
selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss'),add_months(sysdate,n)asnewTimefromdual//改變時(shí)間-月
selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss'),to_char(sysdate+n,'yyyy-mm-ddhh24:mi:ss')asnewTimefromdual//改變時(shí)間-日
selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss'),to_char(sysdate+n/24,'yyyy-mm-ddhh24:mi:ss')asnewTimefromdual//改變時(shí)間-時(shí)
selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss'),to_char(sysdate+n/24/60,'yyyy-mm-ddhh24:mi:ss')asnewTimefromdual//改變時(shí)間-分
selectto_char(sysdate,'yyyy-mm-ddhh24:mi:ss'),to_char(sysdate+n/24/60/60,'yyyy-mm-ddhh24:mi:ss')asnewTimefromdual//改變時(shí)間-秒

29.查找月的第一天,最后一天
SELECTTrunc(Trunc(SYSDATE,'MONTH')-1,'MONTH')First_Day_Last_Month,
Trunc(SYSDATE,'MONTH')-1/86400Last_Day_Last_Month,
Trunc(SYSDATE,'MONTH')First_Day_Cur_Month,
LAST_DAY(Trunc(SYSDATE,'MONTH'))+1-1/86400Last_Day_Cur_Month
FROMdual;

您可能感興趣的文章:
  • Oracle to_date()函數(shù)的用法介紹
  • oracle中to_date詳細(xì)用法示例(oracle日期格式轉(zhuǎn)換)
  • oracle使用to_date查詢一周的第一天日期
  • c#中oracle的to_date函數(shù)使用方法
  • Oracle之TO_DATE用法詳解

標(biāo)簽:潛江 呼倫貝爾 洛陽 阿里 克拉瑪依 運(yùn)城 綏化 西藏

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle中TO_DATE格式介紹》,本文關(guān)鍵詞  Oracle,中,DATE,格式,介紹,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle中TO_DATE格式介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle中TO_DATE格式介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    金塔县| 赤水市| 石棉县| 清原| 平舆县| 贡嘎县| 六盘水市| 从江县| 禄丰县| 封丘县| 廊坊市| 正定县| 安福县| 米林县| 紫云| 昌宁县| 行唐县| 锦州市| 桐柏县| 大渡口区| 瓦房店市| 榆中县| 惠水县| 合作市| 新邵县| 名山县| 慈利县| 永丰县| 株洲县| 武平县| 林甸县| 天津市| 渝中区| 大悟县| 抚松县| 台江县| 乌拉特中旗| 白城市| 中山市| 广南县| 西充县|