日付と時刻の関数は、2つの日時値の間隔を算出したり、日時値に時間を加算したりするような処理で使用します。
指定された時間間隔を加算した日付と時刻を含む値を返します。
構文
DateAdd(interval
, number
, date
)
引数
interval:
追加する時間間隔を設定する文字列です。利用可能な値は次のとおりです。
yyyy
:年
q
:四半期
m
:月
y
:年間通算日
d
:日
w
:平日
ww
:週
h
:時
n
:分
s
:秒 number:
追加する間隔の数を表します。正の値(将来の日付を取得する場合)または負の値(過去の日付を取得する)を指定できます。
date:
時間間隔を追加する日付を表します。 例:
次の式を使用して、現在の日付に1年を追加できます。
{DateAdd("yyyy", 1, Now())}
2つの指定した日付の時間間隔を返します。
構文
DateDiff(interval
, date1
, date2
, [ firstdayofweek
, [ firstweekofyear
]] )
引数
interval:
date1とdate2の時間間隔の計算に使用する時間単位を設定する文字列です。利用可能な値は次のとおりです。
yyyy
:年
q
:四半期
m
:月
y
:年間通算日
d
:日
w
:平日
ww
:週
h
:時
n
:分
s
:秒 date1
、date2
:計算の対象となる2つの日付を指定します。
firstdayofweek
:省略可能です。週の始まりの曜日(日曜日が1、土曜日が7)を表す数値です。省略すると、日曜日を指定したものと見なされます。
firstweekofyear
:省略可能です。年の第1週を指定する数値です。省略すると、1月1日を含む週が第1週と見なされます。利用可能な値は次のとおりです。
1
:1月1日が含まれる週から開始します。
2
:新年の少なくとも4日が含まれる最初の週から開始します。
3
:年の最初の完全な週から開始します。 例:
次の式を使用して、注文から出荷までにかかる時間を比較できます。
{DateDiff("d", ShipDate, OrderDate)}
日付の指定した部分を整数値で返します。
構文
DatePart(interval
, date
, [ firstdayofweek
, [ firstweekofyear
]])
引数
interval
:返す時間間隔を設定する文字列です。利用可能な値は次のとおりです。
yyyy
:年
q
:四半期(1月から3月が1を返す動作となり、四半期の開始月は固定です。アプリケーション設定の[会計年度開始月]プロパティの設定は本関数の動作に影響しないことに注意してください。)
m
:月
y
:年間通算日
d
:日
w
:平日
ww
:週
h
:時
n
:分
s
:秒 date
:評価する日付です。
firstdayofweek
:省略可能です。週の始まりの曜日(日曜日が1、土曜日が7)を表す数値です。省略すると、日曜日を指定したものと見なされます。
firstweekofyear
:省略可能です。年の第1週を指定する数値です。省略すると、1月1日を含む週が第1週と見なされます。利用可能な値は次のとおりです。
1
:1月1日が含まれる週から開始します。
2
:新年の少なくとも4日が含まれる最初の週から開始します。
3
:年の最初の完全な週から開始します。 例:
次の式を使用して、現在の年とともに著作権マークを表示できます。
© {DatePart("yyyy", Now())}
指定した年、月、日に対応する日付を返します。時刻部分は常に「00:00:00」となります。
構文
DateSerial(year
, month
, day
)
引数
year
:100~9999の範囲の整数を指定します。
month
:1~12の範囲の整数を指定します。
day
:1~31の範囲の整数を指定します。 例:
次の式を使用して、1982年1月4日を作成できます。
{DateSerial(1982, 1, 4)}
システムの現在の日付をyyyy-mm-dd
形式で表す文字列を返します。
構文
DateString()
指定した文字列から日付を返します。時刻部分は常に「00:00:00」となります。
構文
DateValue(date
)
引数
date
:yyyy-mm-dd
形式の日付を含む文字列を指定します。 例:
次の式を使用して、2020-02-29の文字列から日付を作成できます。
{DateValue("2020-02-29")}
日付を表す1から31の範囲の整数値を返します。
構文
Day(date
)
引数
date
:評価する日付です。 例:
次の式を使用して、現在の日付から月の日を返すことができます。
{Day(Now())}
時刻を表す0から23の範囲の整数値を返します。
構文
Hour(date
)
引数
date
:評価する日付です。 例:
次の式を使用して、現在の日付の時刻を返すことができます。
{Hour(Now())}
時刻の分を表す0から59の範囲の整数値を返します。
構文
Minute(date
)
引数
date
:評価する日付です。 例:
次の式を使用して、現在の日付の時刻の分を返すことができます。
{Minute(Now())}
月を表す0から12の範囲の整数値を返します。
構文
Month(date
)
引数
例:
次の式を使用して、現在の日付の月を返すことができます。
{Month(Now())}
指定した月を示す文字列を返します。
構文
MonthName(month
, [ abbreviate
])
引数
month
:月を指定する数値です。 たとえば、1月は「1」、2月は「2」などです。
abbreviate
:省略可能です。月の名前を省略形にするかどうかを指定するブール値です。既定値はFalseです。 例:
次の式を使用して、現在の月の省略形を返すことができます。
{MonthName(Month(Now()), true)}
システムの現在の日付と時刻を返します。
構文
Now()
時刻の秒を表す0から59の範囲の整数を返します。
構文
Second(date
)
引数
date
:評価する日付です。 例:
現在の日付の分の秒を返すには、次の式を使用できます。
{Second(Now())}
システムの現在の時刻を含む日付を返します。
構文
TimeOfDay()
午前0時から経過した秒数を表す表す倍精度浮動小数点数型(Double)の値を返します。
構文
Timer()
指定した時間、分、秒に対応する時刻を含む日付を返します。日付部分は常に1年1月1日となります。
構文
TimeSerial(hour
, minute
, second
)
引数
hour
:0~23の範囲の整数を指定します。
minute
:0~59の範囲の整数を指定します。
second
:0~59の範囲の整数を指定します。 例:
次の式を使用して、午後3時30分で日付を作成できます。
{TimeSerial(15, 30,0)}
システムの現在の時刻を表す文字列を返します。
構文
TimeString()
指定した文字列から時刻値を返します。日付部分は常に1年1月1日となります。
構文
TimeValue(time
)
引数
time
:12時間制または24時間制の時刻値を含む文字列です。 例:
次の式を使用して、午前3時15分の文字列から時刻を作成できます。
{TimeValue("3:15am")}
システムの現在の日付を返します。
構文
Today()
曜日を表す整数値を返します。
構文
Weekday(date
, [ firstdayofweek
])
引数
date
:評価する日付です。
firstdayofweek
:省略可能です。週の始まりの曜日(日曜日が1、土曜日が7)を表す数値です。省略すると、日曜日を指定したものと見なされます。 例:
次の式を使用して、現在の曜日を返すことができます。
{Weekday(Today())}
指定した曜日を示す文字列を返します。
構文
WeekdayName(weekday
, [abbreviate
, [firstdayofweek
]])
引数
weekday
:曜日を指定する数値です。 各曜日の数値は、firstdayofweek の設定によって決まります。
abbreviate
:省略可能です。曜日の名前を省略形にするかどうかを指定するブール値です。既定値はFalseです。
firstdayofweek
:省略可能です。週の始まりの曜日(日曜日が1、土曜日が7)を表す数値です。省略すると、日曜日を指定したものと見なされます。 例:
次の式を使用して、現在の曜日の省略形を返すことができます。
{WeekDayName(Weekday(Now()), true)}
1年の四半期を表す1~4の範囲の数値を返します。1月から3月が1を返す動作となり、四半期の開始月は固定です。アプリケーション設定の[会計年度開始月]プロパティの設定は本関数の動作に影響しないことに注意してください。
構文
Quarter(date
)
引数
date
:評価する日付です。 例:
次の式を使用して、現在の日付の年の四半期を返すことができます。
{Quarter(Now())}
四半期名を表す文字列(Q1~Q4)を返します。1月から3月がQ1を返す動作となり、四半期の開始月は固定です。アプリケーション設定の[会計年度開始月]プロパティの設定は本関数の動作に影響しないことに注意してください。
構文
QuarterName(date
)
引数
date
:評価する日付です。 例:
次の式を使用して、現在の日付の四半期名を返すことができます。
{QuarterName(Now())}
年を表す1から9999の範囲の整数値を返します。
構文
Year(date
)
引数
date
:評価する日付です。 例:
現在の年を返すには、次の式を使用できます。
{Year(Now())}
特定の日付に指定した年数を追加した新しい日付を返します。
構文
<Date>.AddYears(years
)
引数
years
:追加する年数です。正または負の数値を指定できます。 例:
次の式を使用して、現在の日付より2年後の日付を返すことができます。
{Now().AddYears(2)}
特定の日付に指定した月数を追加した新しい日付を返します。
構文
<Date>.AddMonths(months
)
引数
months
:追加する月数です。正または負の数値を指定できます。 例:
次の式を使用して、現在の日付から5か月前の日付を返すことができます。
{Now().AddMonths(-5)}
特定の日付に指定した日数を追加した新しい日付を返します。
構文
<Date>.AddMonths(days
)
引数
days
:追加する日数です。正または負の数値を指定できます。 例:
次の式を使用して、明日の日付を返すことができます。
{Now().AddDays(1)}
特定の日付に指定した時間数を追加した新しい日付を返します。
構文
<Date>.AddHours(hours
)
引数
hours
:追加する時間数です。正または負の数値を指定できます。 例:
次の式を使用して、昨日の日付を返すことができます。
{Now().AddHours(-24)}
特定の日付に指定した分数を追加した新しい日付を返します。
構文
<Date>.AddMinutes(minutes
)
引数
minutes
:追加する分数です。正または負の数値を指定できます。 例:
次の式を使用して、現在の日付より30分遅れた日付を返すことができます。
{Now().AddMinutes(-30)}
特定の日付に指定した秒数を追加した新しい日付を返します。
構文
<Date>.AddSeconds(seconds
)
引数
seconds
:追加する秒数です。正または負の数値を指定できます。 例:
次の式を使用して、現在の日付より45秒後の日付を返すことができます。
{Now().AddSeconds(45)}
特定の日付に指定したミリ秒数を追加した新しい日付を返します。
構文
<Date>.AddMilliseconds(milliseconds
)
引数
milliseconds
:追加するミリ秒数です。正または負の数値を指定できます。 例:
次の式を使用して、現在の日付より654ミリ秒遅れた日付を返すことができます。
{Now().AddMilliseconds(-654)}
Year/Quarter/Month/Day関数を使用して、日付値の年、四半期、月、日の値を返します。
たとえば、現在の日付が2021年12月27日である場合、今日の年、四半期、月、日を取得して表示する例を次に示します。
↓
式の「Today()」部分を日付型の値に置き換えて使用できます。たとえば、「{Month(注文日)}」を使用して、注文日の月の値を取得します。
テーブルの最初の列に「受注日」フィールドをバインドし、2番目の列に式「{QuarterName}」を設定します。
レポートをプレビューして確認すると、各受注日の四半期名が出力されていることを確認できます。
↓
DateAdd関数は、指定された日時の間隔を加算した日付と時刻の値を含む日付値を返します。たとえば、DataAdd( "d"、-1、 "2017-1-1")は 「2016-12-31」の値を返します。
例1 月末日の取得
月の最終日は月によって異なるため、動的に求める必要があります。DateAdd関数を使い、翌月の初日から1日を引いて、当月の最終日を取得します。
最初に「翌月の初日」を取得します:{DateAdd("M", 1, DateSerial(Year(Today()), Month(Today()), 1))}
次に、「翌月の初日」から1日を引いて、目的の「月末日」を取得します:{DateAdd("d", -1, DateAdd("M", 1, DateSerial(Year(Today()), Month(Today()), 1)))}
↓
例2 内部データベースのシリアル値日付データの変換
内部データベースにおける日付データは、Excelと同様にシリアル値と呼ばれる数値として保存されます(例:43425.455467963)。
内部データベースのテーブルに定義された日付型を直接使用する場合には変換は必要ありませんが、ビューを使用した場合など、データ型がForguncy側からは分からない場合には、DateAdd関数を使用してyyyy-MM-dd HH:mm:ssの形式に変換する必要があります。
実現分析:
これら2つの式を使用して変換すると、次のような出力結果となります。
DatePart関数は、指定されたDate値の指定された部分(年、月、日、時、分、秒、ミリ秒、曜日など)を含む整数値を返します。たとえば、DatePart("m","2017-11-2")は月の部分である「11」を返します。
DatePart関数を使用して四半期ごとの値を取得し、「第1四半期」といった文字列を出力する例を示します。
なお、アプリケーション設定の[会計年度開始月]プロパティの設定はDatePart関数に反映されません。そのため、通常はデータソースの編集時点で日付型フィールドのサブフィールドである「四半期」をデータセット側にフィールドとして作成する方法をお勧めします。データソースの編集についてはレポートデータソースを参照してください。
式「{DatePart("q",受注日)}」を使用して、受注日からの四半期の整数値を取得できます。返される結果は1〜4です。
Choose関数で変換することで四半期の開始月を変更することが可能です。たとえば、4月~6月を第1四半期と表示したい場合、式「第{Choose(DatePart("q", 受注日), "4", "1", "2", "3")}四半期」を使用します。
データが四半期ごとにグループ化されて出力されます。また、グループ条件に従ってデータの並べ替えを追加し、四半期の順序でデータが表示されるようにします。