日付処理


  日付と日付の間




● TO_DATE
● MONTHS_BETWEEN
● ADD_MONTHS
LAST_DAY

日付から日付を引く事によって経過日数を求める事ができます

  

select TO_DATE('2004/01/01') - TO_DATE('2003/12/31') from dual;

select TO_DATE('2003/12/31') - TO_DATE('2004/01/01') from dual;
  

同様に、日付に対して加算・減算を行なうを行なう事ができます

  

select TO_DATE('2004/01/01') + 365 from dual;

select TO_DATE('2004/01/01') - 365 from dual;
  

日付と日付の間を処理する関数としては、MONTHS_BETWEEN があります。これは、経過月数を求めるものですが、端数が戻されます

  

select MONTHS_BETWEEN(TO_DATE('2004/01/01'),TO_DATE('2003/12/15')) 経過月数
 from dual
  

経過月数
1 0.548387096774194



結果として整数が戻されるのは、「日」が同じ場合ですが、月末の場合は例外となります。よって以下の二つの関数の結果は同じ結果となります

  

select
   MONTHS_BETWEEN(TO_DATE('2004/01/31'),TO_DATE('2003/11/30')) 経過月数1,
   MONTHS_BETWEEN(TO_DATE('2004/01/30'),TO_DATE('2003/11/30')) 経過月数2
 from dual
  

経過月数1 経過月数2
1 2 2



MONTHS_BETWEEN を使用すると、経過年数も知る事ができます

  

select
   TRUNC(MONTHS_BETWEEN(SYSDATE,TO_DATE('1950/5/4'))/12) 経過年数
 from dual
  

TRUNC は小数以下の切捨てです

経過年数
1 53



X ヶ月後の日付を求める関数があります。ADD_MONTHS です。

  

select
   ADD_MONTHS(SYSDATE,13) Xヶ月後,
   ADD_MONTHS(SYSDATE,-13) Xヶ月前
 from dual
  

Xヶ月後 Xヶ月前
1 2005/03/27 20:26:33 2003/01/27 20:26:33



時間を切り捨てるには、TRUNC を用います。その月の1日にする事も、月末にする事もできます

  

select
   TRUNC(ADD_MONTHS(SYSDATE,13)) Xヶ月後1,
   TRUNC(ADD_MONTHS(SYSDATE,13),'MONTH') Xヶ月後2,
   LAST_DAY(TRUNC(ADD_MONTHS(SYSDATE,13))) Xヶ月後3
 from dual
  

Xヶ月後1 Xヶ月後2 Xヶ月後3
1 2005/03/27 2005/03/01 2005/03/31



少し変わった関数に、「次の X 曜日は何日 ?」 という関数があります

  

select
   TRUNC(NEXT_DAY(SYSDATE,'火')) 次のX曜日
 from dual
  







  日付書式




  

select * 
 from "商品マスタ" 
 where "作成日" = TO_DATE('2005/03/15','RRRR/MM/DD HH24:MI:SS')
  

  

select TO_CHAR("作成日",'RRRR/MM/DD HH24:MI:SS') as 作成日
 from "商品マスタ" 
  

(注1)TO_*日時ファンクションで指定できるか
【TO_CHAR、TO_DATE、TO_TIMESTAMP、TO_TIMESTAMP_TZ、TO_YMINTERVALおよびTO_DSINTERVAL】
要素 (注1) 説明 
-
/
,
.
;
:
"text"
 

○ 

結果に取り込まれる句読点とテキスト。 

AD
A.D.
 

○ 

ピリオド付き/なしで西暦を示します。 

AM
A.M.
 

○ 

ピリオド付き/なしで午前を示します。 

BC
B.C.
 

○ 

ピリオド付き/なしで紀元前を示します。 

CC
SCC
 

× 

世紀。

  • 4桁で表した年の下2桁が01〜99(01および99を含む)の場合、世紀はその年の上2桁より1つ大きくなります。

  • 4桁で表した年の下2桁が00の場合、世紀はその年の上2桁と同一になります。

たとえば、2002は21を戻し、2000は20を戻します。 

D
 

○ 

曜日(1〜7)。 

DAY
 

○ 

曜日。空白を埋め込んで、この要素に使用される日付言語の一番長い曜日の幅で表示します。 

DD
 

○ 

月における日(1〜31)。 

DDD
 

○ 

年における日(1〜366)。 

DL
 

○ 

OracleデータベースのDATE書式の拡張である長い日付書式の値(NLS_DATE_FORMATパラメータの現在の値)を戻します。日付コンポーネント(曜日、月番号など)は、NLS_TERRITORYおよびNLS_LANGUAGEパラメータに応じて表示されます。たとえば、AMERICAN_AMERICAロケールでは、これは書式'fmDay, Month dd, yyyy'を指定することと同じです。GERMAN_GERMANYロケールでは、書式'fmDay, dd. Month yyyy'を指定することと同じです。

制限事項: この書式はTS要素とのみ指定できます。その場合は空白で区切ります。 

DS
 

○ 

短い日付書式の値を戻します。日付コンポーネント(曜日、月番号など)は、NLS_TERRITORYおよびNLS_LANGUAGEパラメータに応じて表示されます。たとえば、AMERICAN_AMERICAロケールでは、これは書式'MM/DD/RRRR'を指定することと同じです。ENGLISH_UNITED_KINGDOMロケールでは、書式'DD/MM/RRRR'を指定することと同じです。

制限事項: この書式はTS要素とのみ指定できます。その場合は空白で区切ります。 

DY
 

○ 

曜日の省略形。 

E
 

× 

時代名の略称(日本、台湾、タイ)。 

EE
 

× 

時代名の完全名称(日本、台湾、タイ)。 

FF [1..9]
 

○ 

小数部。基数は出力されません(基数文字の追加には、X書式要素を使用します)。戻される日時の値の小数部の桁数を指定するには、FFの後に、1〜9の数字を使用します。数字を指定しない場合は、日時データ型に指定された精度またはデータ型のデフォルトの精度が使用されます。

例: 'HH:MI:SS.FF'

SELECT TO_CHAR(SYSTIMESTAMP, 'SS.FF3') from dual; 

FM
 

○ 

前後に空白を付けずに値を戻します。

参照: この書式モデル修飾子の詳細は、Oracle Database SQLリファレンスを参照してください。 

FX
 

○ 

文字データと書式モデルが完全に一致する必要があります。

参照: この書式モデル修飾子の詳細は、Oracle Database SQLリファレンスを参照してください。 

HH
 

○ 

時間(1〜12)。 

HH12
 

× 

時間(1〜12)。 

HH24
 

○ 

時間(0〜23)。 

IW
 

× 

ISO規格に基づく、年における週(1〜52または1〜53)。 

IYY
IY
I
 

× 

それぞれISO年の下3桁、2桁、1桁。 

IYYY
 

× 

ISO規格に基づく4桁の年。 

J
 

○ 

ユリウス日。紀元前4712年1月1日から経過した日数。「J」を付けて指定する数値は、整数にしてください。 

MI
 

○ 

分(0〜59)。 

MM
 

○ 

月(01〜12、1月 = 01)。 

MON
 

○ 

月の名前の省略形。 

MONTH
 

○ 

月の名前。空白を埋め込んで、この要素に使用される日付言語の一番長い月名の幅で表示します。 

PM
P.M.
 

× 

ピリオド付き/なしで午前を示します。 

Q
 

× 

年の四半期(1、2、3、4;1月〜3月=1)。 

RM
 

○ 

ローマ数字で表した月(I〜XII;1月=I)。 

RR
 

○ 

2桁のみを使用して、21世紀に20世紀の日付を格納できます。

参照: RR日時書式要素の詳細は、Oracle Database SQLリファレンスを参照してください。 

RRRR
 

○ 

年を丸めます。4桁または2桁で入力できます。2桁の場合、RRの場合と同様の結果が戻ります。年を4桁で入力すると、この処理は行われません。 

SS
 

○ 

秒(0〜59)。 

SSSSS
 

○ 

午前0時から経過した秒(0〜86399)。 

TS
 

 

短い時刻書式の値を戻します。時刻コンポーネント(時、分など)は、NLS_TERRITORYおよびNLS_LANGUAGE初期化パラメータに応じて表示されます。

制限事項: この書式はDL要素またはDS要素とのみ指定できます。その場合は空白で区切ります。 

TZD 
 

○ 

夏時間の情報。TZDの値は、夏時間の情報を持つタイムゾーン文字列の省略形です。TZRで指定した地域と対応している必要があります。

例: PST(米国/太平洋標準時)、PDT(米国/太平洋夏時間) 

TZH
 

○ 

タイムゾーンの時間(TZM書式要素を参照)。

例: 'HH:MI:SS.FFTZH:TZM' 

TZM
 

○ 

タイムゾーンの分(TZH書式要素を参照)。

例: 'HH:MI:SS.FFTZH:TZM' 

TZR
 

○ 

タイムゾーン地域の情報。値は、データベースでサポートされるタイムゾーン地域である必要があります。

例: US/Pacific 

WW
 

× 

年における週(1〜53)。第1週はその年の1月1日で始まり、1月7日で終了します。 

W
 

× 

月における週(1〜5)。第1週はその月の1日で始まり、7日で終了します。 

X
 

○ 

ローカル基数文字。

例: 'HH:MI:SSXFF' 

Y,YYY
 

○ 

指定した位置にカンマを付けた年。 

YEAR
SYEAR
 

× 

フルスペルで表した年。Sを指定すると紀元前の日付の先頭に負の符号(-)が付けられます。 

YYYY
SYYYY
 

○ 

4桁で表した年。Sを指定すると紀元前の日付の先頭に負の符号(-)が付けられます。 

YYY
YY
Y
 

○ 

それぞれ年の下3桁、2桁、1桁。 





yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[orafunc]
claudebot
24/03/29 17:46:37
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube