Forguncy 8 オンラインヘルプ
Forguncyの使い方 / レポート / / 共通の関数 / 日付と時刻
このトピックで
    日付と時刻
    このトピックで

    日付と時刻の関数は、2つの日時値の間隔を算出したり、日時値に時間を加算したりするような処理で使用します。

    DateAdd

    指定された時間間隔を加算した日付と時刻を含む値を返します。

    構文

    DateAdd(interval, number, date)

    引数

    例:

    次の式を使用して、現在の日付に1年を追加できます。

     
    
    {DateAdd("yyyy", 1, Now())}
    
    

    DateDiff

    2つの指定した日付の時間間隔を返します。

    構文

    DateDiff(interval, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )

    引数

    例:

    次の式を使用して、注文から出荷までにかかる時間を比較できます。

     
    
    {DateDiff("d", ShipDate, OrderDate)}
    
    

    DatePart

    日付の指定した部分を整数値で返します。

    構文

    DatePart(interval, date, [ firstdayofweek, [ firstweekofyear ]])

    引数

    例:

    次の式を使用して、現在の年とともに著作権マークを表示できます。

     
    
    © {DatePart("yyyy", Now())}
    
    

    DateSerial

    指定した年、月、日に対応する日付を返します。時刻部分は常に「00:00:00」となります。

    構文

    DateSerial(year, month, day)

    引数

    例:

    次の式を使用して、1982年1月4日を作成できます。

     
    
    {DateSerial(1982, 1, 4)}
    
    

    DateString

    システムの現在の日付をyyyy-mm-dd形式で表す文字列を返します。

    構文

    DateString()

    DateValue

    指定した文字列から日付を返します。時刻部分は常に「00:00:00」となります。

    構文

    DateValue(date)

    引数

    例:

    次の式を使用して、2020-02-29の文字列から日付を作成できます。

     
    
    {DateValue("2020-02-29")}
    
    

    Day

    日付を表す1から31の範囲の整数値を返します。

    構文

    Day(date)

    引数

    例:

    次の式を使用して、現在の日付から月の日を返すことができます。

     
    
    {Day(Now())}
    
    

    Hour

    時刻を表す0から23の範囲の整数値を返します。

    構文

    Hour(date)

    引数

    例:

    次の式を使用して、現在の日付の時刻を返すことができます。

     
    
    {Hour(Now())}
    
    

    Minute

    時刻の分を表す0から59の範囲の整数値を返します。

    構文

    Minute(date)

    引数

    例:

    次の式を使用して、現在の日付の時刻の分を返すことができます。

     
    
    {Minute(Now())}
    
    

    Month

    月を表す0から12の範囲の整数値を返します。

    構文

    Month(date)

    引数

    例:

    次の式を使用して、現在の日付の月を返すことができます。

     
    
    {Month(Now())}
    
    

    MonthName

    指定した月を示す文字列を返します。

    構文

    MonthName(month, [ abbreviate ])

    引数

    例:

    次の式を使用して、現在の月の省略形を返すことができます。

     
    
    {MonthName(Month(Now()), true)}
    
    

    Now

    システムの現在の日付と時刻を返します。

    構文

    Now()

    Second

    時刻の秒を表す0から59の範囲の整数を返します。

    構文

    Second(date)

    引数

    例:

    現在の日付の分の秒を返すには、次の式を使用できます。

     
    
    {Second(Now())}
    
    

    TimeOfDay

    システムの現在の時刻を含む日付を返します。

    構文

    TimeOfDay()

    Timer

    午前0時から経過した秒数を表す表す倍精度浮動小数点数型(Double)の値を返します。

    構文

    Timer()

    TimeSerial

    指定した時間、分、秒に対応する時刻を含む日付を返します。日付部分は常に1年1月1日となります。

    構文

    TimeSerial(hour, minute, second)

    引数

    例:

    次の式を使用して、午後3時30分で日付を作成できます。

     
    
    {TimeSerial(15, 30,0)}
    
    

    TimeString

    システムの現在の時刻を表す文字列を返します。

    構文

    TimeString()

    TimeValue

    指定した文字列から時刻値を返します。日付部分は常に1年1月1日となります。

    構文

    TimeValue(time)

    引数

    例:

    次の式を使用して、午前3時15分の文字列から時刻を作成できます。

     
    
    {TimeValue("3:15am")}
    
    

    Today

    システムの現在の日付を返します。

    構文

    Today()

    Weekday

    曜日を表す整数値を返します。

    構文

    Weekday(date, [ firstdayofweek ])

    引数

    例:

    次の式を使用して、現在の曜日を返すことができます。

     
    
    {Weekday(Today())}
    
    

    WeekDayName

    指定した曜日を示す文字列を返します。

    構文

    WeekdayName(weekday, [abbreviate, [firstdayofweek ]])

    引数

    例:

    次の式を使用して、現在の曜日の省略形を返すことができます。

     
    
    {WeekDayName(Weekday(Now()), true)}
    
    

    Quarter

    1年の四半期を表す1~4の範囲の数値を返します。1月から3月が1を返す動作となり、四半期の開始月は固定です。アプリケーション設定の[会計年度開始月]プロパティの設定は本関数の動作に影響しないことに注意してください。

    構文

    Quarter(date)

    引数

    例:

    次の式を使用して、現在の日付の年の四半期を返すことができます。

     
    
    {Quarter(Now())}
    
    

    QuarterName

    四半期名を表す文字列(Q1~Q4)を返します。1月から3月がQ1を返す動作となり、四半期の開始月は固定です。アプリケーション設定の[会計年度開始月]プロパティの設定は本関数の動作に影響しないことに注意してください。

    構文

    QuarterName(date)

    引数

    例:

    次の式を使用して、現在の日付の四半期名を返すことができます。

     
    
    {QuarterName(Now())}
    
    

    Year

    年を表す1から9999の範囲の整数値を返します。

    構文

    Year(date)

    引数

    例:

    現在の年を返すには、次の式を使用できます。

     
    
    {Year(Now())}
    
    

    AddYears

    特定の日付に指定した年数を追加した新しい日付を返します。

    構文

    <Date>.AddYears(years)

    引数

    例:

    次の式を使用して、現在の日付より2年後の日付を返すことができます。

     
    
    {Now().AddYears(2)}
    
    

    AddMonths

    特定の日付に指定した月数を追加した新しい日付を返します。

    構文

    <Date>.AddMonths(months)

    引数

    例:

    次の式を使用して、現在の日付から5か月前の日付を返すことができます。

     
    
    {Now().AddMonths(-5)}
    
    

    AddDays

    特定の日付に指定した日数を追加した新しい日付を返します。

    構文

    <Date>.AddMonths(days)

    引数

    例:

    次の式を使用して、明日の日付を返すことができます。

     
    
    {Now().AddDays(1)}
    
    

    AddHours

    特定の日付に指定した時間数を追加した新しい日付を返します。

    構文

    <Date>.AddHours(hours)

    引数

    例:

    次の式を使用して、昨日の日付を返すことができます。

     
    
    {Now().AddHours(-24)}
    
    

    AddMinutes

    特定の日付に指定した分数を追加した新しい日付を返します。

    構文

    <Date>.AddMinutes(minutes)

    引数

    例:

    次の式を使用して、現在の日付より30分遅れた日付を返すことができます。

     
    
    {Now().AddMinutes(-30)}
    
    

    AddSeconds

    特定の日付に指定した秒数を追加した新しい日付を返します。

    構文

    <Date>.AddSeconds(seconds)

    引数

    例:

    次の式を使用して、現在の日付より45秒後の日付を返すことができます。

     
    
    {Now().AddSeconds(45)}
    
    

    AddMilliseconds

    特定の日付に指定したミリ秒数を追加した新しい日付を返します。

    構文

    <Date>.AddMilliseconds(milliseconds)

    引数

    例:

    次の式を使用して、現在の日付より654ミリ秒遅れた日付を返すことができます。

     
    
    {Now().AddMilliseconds(-654)}
    
    

    Year/Quarter/Month/Day関数の使用例 - 年、四半期、月、日の取得

    Year/Quarter/Month/Day関数を使用して、日付値の年、四半期、月、日の値を返します。

    たとえば、現在の日付が2021年12月27日である場合、今日の年、四半期、月、日を取得して表示する例を次に示します。

    式の「Today()」部分を日付型の値に置き換えて使用できます。たとえば、「{Month(注文日)}」を使用して、注文日の月の値を取得します。

    QuarterName関数の例 - 四半期名の取得

    テーブルの最初の列に「受注日」フィールドをバインドし、2番目の列に式「{QuarterName}」を設定します。

    レポートをプレビューして確認すると、各受注日の四半期名が出力されていることを確認できます。

    DateAdd関数の例 - 月末日の取得/内部データベースのシリアル値日付データの変換

    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関数の例 

    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")}四半期」を使用します。

    1. Tableデータ領域を追加し、次の図のようにデータセットのフィールドをデータ連結します。

    2. グループを追加し、グループの条件として[式]プロパティに「{DatePart("q", 受注日)}」を設定します。

      データが四半期ごとにグループ化されて出力されます。また、グループ条件に従ってデータの並べ替えを追加し、四半期の順序でデータが表示されるようにします。

    3. グループヘッダー上のTextBoxコントロールに「第{Choose(DatePart("q", 受注日), "4", "1", "2", "3")}四半期」を設定します。

    4. レポートをプレビューして確認すると、次のような表示となることを確認できます。