一.概要
日付型データに関する操作に当たり、現在の日付や現在の時刻、日付の年月日などを取得する場面がよくあります。
本文はFineReportでよくある日付関数を紹介します。
注意:日付型数式をパラメータとしてハイパーリンクで転送する際、時・分・秒を含む初期値が送られることになります。
二.指定の日付と時間の取得
実現する内容 | 数式 | 結果 | |
---|---|---|---|
現在の時刻の取得 | |||
現在の日付の取得(年月日) | =today() | システムの日付が2011年11月11日の場合、「2011-11-11」が返されます | |
現在の時刻の取得(時、分、秒) | =now() | セル形式が標準で、システムの日付が2012年06月20日の場合、「2012-06-2014:55:57」が返されます | |
現在の月が属する四半期の表示 | =roundup(month(today())/3) | システムの日付が2011年11月11日の場合、「4」が返されます | |
日付の年月日の取得 | |||
年の取得 | =year("2011-11-11") | 2011が返されます | |
月の取得 | =month("2011-11-11") | 11が返されます | |
日付の取得 | =day("2011-11-11") | 11が返されます | |
ある年/四半期/月/週の指定された日の取得 | |||
DATEINYEAR(date,number) ある年の指定された日を取得 | 現在の年の最初の日 | =dateinyear(today(),1) | システの日付が2011-11-11の場合、2011-01-01が返されます |
現在の年の最後の日 | =dateinyear(today(),-1) | システムの日付が2011-11-11の場合、2011-12-31が返されます | |
DATEINQUARTER(date,number)ある四半期の指定された日を取得 | 現在の四半期の最初の日 | =dateinquarter(today(),1) | システムの日付が2011-11-11の場合、2011-10-01が返されます |
現在の四半期の最後の日 | =dateinquarter(today(),-1) | システムの日付が2011-11-11の場合、2011-12-31が返されます | |
DATEINMONTH(date,number) ある月の指定された日を取得 | 現在の月の最初の日 | =dateinmonth(today(),1) | システムの日付が2011-11-11の場合、2011-11-01が返されます |
現在の月の最後の日 | =dateinmonth(today(),-1) | システムの日付が2011-11-11の場合、2011-11-30が返されます | |
DATEINWEEK(date,number) ある週の指定された日を取得 | 現在の週の最初の日 | =dateinweek(today(),1) | システムの日付が2011-11-11の場合、2011-11-07が返されます |
現在の週の最後の日 | =dateinweek(today(),-1) | システムの日付が2011-11-11の場合、2011-11-13が返されます | |
現在の月に関係するある日付の取得 | |||
現在の月 | =MONTH(today()) | システムの日付が2011-11-11の場合、11が返されます | |
去年の本日 | =YEARDELTA(today(),-1) | システムの日付が2011-11-11の場合、2010-11-11が返されます | |
先々月 | =date(year(today()),MONTH(today())-2,day(today())) | システムの日付が2011-11-11の場合、2011-09-11が返されます | |
先月 | =date(year(today()),MONTH(today())-1,day(today())) | システムの日付が2011-11-11の場合、2011-10-11が返されます | |
去年の本日の先月 | =date(year(today())-1,MONTH(today())-1,day(today())) | システムの日付が2011-11-11の場合、2010-10-11が返されます | |
先月末 | =DATEINMONTH(MONTHDELTA(TODAY(),-1),-1) | システムの日付が2011-11-11の場合、2011-10-31が返されます | |
先月初め | =DATEINMONTH(MONTHDELTA(TODAY(),-1),1) | システムの日付が2011-11-11の場合、2010-10-01が返されます |
三.時間の変換
実現する内容 | 数式 | 結果 |
---|---|---|
データ型の変換 | ||
日付の形式を文字列から時間型に変換 todate()はあらゆる日付の形式をyyyy-MM-ddという時間型に変換可能 | =todate("2011/11/11") | システムの日付が2011年11月11日の場合、2011-11-11が返されます |
時間型データをほかの形式の日付に変換 format() | =format("2/15/2011","dd/MM/yyyy") | 15/02/2011が返されます |
四.日付の加算と減算
datedelta()、monthdelta()、yeardelta()の三つの関数で日付の加算と減算をします。
実現する内容 | 数式 | 結果 |
---|---|---|
データ型の変換 | ||
日付の加算と減算 | =datedelta(today(),-1) 注:数式における-1は一日減算することを表し、逆に正数ならその値を加算することになります。 | 現在の日付の前の日を取得しようとする場合、システムの日付が2011-11-11なら、2011-11-10が返されます |
月の加算と減算 | =monthdelta(today(),-1) | 現在の日付の前の月を取得しようとする場合、システムの日付が2011-11-11なら、2011-10-11が返されます |
年の加算と減算 | =yeardelta(today(),-1) | 現在の日付の前の年を取得しようとする場合、システムの日付が2011-11-11なら、2010-11-11が返されます |