日付と時間関数

  • 作成者:ayuan0625
  • 編集回数:26次
  • 最終更新:FRInternational 于 2021-11-30
  • 1.概要

    日付関数については、よく使う日付関数をご参照ください。

    1.応用シーン

    日付関数はデータソース内の日付を対象に操作できます。

    たとえば、それぞれの値が年、月、日の日付フィールド(2004-04-15)になる場合があります。日付関数を使い(例えば  DATEINMONTH 関数)、既存の値に基づいて新しい日付値を作成できます。

    たとえば、既存の日付値の今月の初日を検索できます。

    次の図に示すように、セルに入力してください:=DATEINMONTH("2004-04-15",1)

    元の日付が2004-04-15の場合、上記の計算式を使用すると、次の図に示されたように、現在の時刻が対応する月の初日である2004-04-01に戻ります。

     

    2.注意事項

    • 日付をパラメータ係数とすれば、日付の形式は yyyy/mm/ddでなければならず、しかも英語の二重引用符(" ")を使わなければなりません。

    • 日付関数が有効でない場合は、現在の時刻を使用して計算されます。

    • テキストウィジェットで日付関数を使用して yyyy/mm/dd 形式を表示する場合は、Format関数を使用して変換する必要があります。

    2.DATE-特定の日付

    DATE(year, month, day)

    特定の日付を表す系列の数字に戻ります。

    Year:年を表し、1~4桁にすることができます。

    month:月を表します。

    1 <=month<= 12の場合、関数はパラメータ値を月とします。

    month>12の場合、関数は年の1月から上に加えます。例: DATE(2000,25,2)は2002年1月2日の系列数が返されます。

    day:日を表します。

    日付が指定された月の日数より少ない場合、関数はこのパラメータ値を日とします。

    日付が指定された月の日数より大きい場合、関数は指定された月の初日から上に加えます。日付が2か月以上の合計日数を超える場合、関数は2か月以上の余った数字を3か月目または4か月目に加算します。

    DATE(2000,3,35)は2000年4月4日の系列数が返されます。

    例示:

    DATE(1978, 9, 19)は1978年9月19日が返されます。

    DATE(1211, 12, 1)は1211年12月1日が返されます。

    その中で、月と日が1から9の間の数字である場合、前に0を加える必要はなく、DATE(2011, 2, 1)などの数字を直接書いても大丈夫です。

    3.DATEDELTA-ある日付の後の数日

    DATEDELTA(date, deltadays)

    date からdeltadays日後の日付。deltaDays はプラス、マイナス、ゼロにすることができます。

    例示:

    DATEDELTA("2008-08-08",-10)は2008-07-29が返されます。

    DATEDELTA("2008-08-08",10)は2008-08-18が返されます。

    4.DATEDIF-時間差日数

    DATEDIF(start_date,end_date,unit)

    指定した2つの日付の間の日数、月数、または年数に戻ります。

    Start_date:指定した時間帯の最初の日付を表します。

    End_date:指定された時間帯の終了日を表します。

    Unit:関数の戻る数値に関する情報の種類です。

     unit="Y"の場合、DATEDIFは指定された期間の年の差が返されます。

    unit="M"の場合、DATEDIFは指定された期間の月の差が返されます。

    unit="D"の場合、DATEDIFは指定された期間の日の差が返されます。

     unit="MD"の場合、DATEDIFは年と月を無視し、指定された期間の日の差が返されます。

     unit="YM"の場合、DATEDIFは年と日を無視し、指定された期間の月の差が返されます。

     unit="YD"の場合、DATEDIFは年を無視し、指定された期間の日の差が返されます。

    例示:

    DATEDIF("2001/2/28","2004/3/20","Y")は3に等しく、即ち2001年2月28日から2004年3月20日までの期間には丸ごと3年間があります。

    DATEDIF("2001/2/28","2004/3/20","M")は36、つまり2001年2月28日から2004年3月20日までの36か月に相当します。

    DATEDIF("2001/2/28","2004/3/20","D") は1116で、即ち2001年2月28日から2004年3月20日までの1116日に相当します。

    DATEDIF("2001/2/28","2004/3/20","MD") は8、つまり月と年を無視した後、2001年2月28日と2004年3月20日の差は8日です。

    DATEDIF("2001/1/28","2004/3/20","YM") は2、即ち日と年越しの期間を無視して、2001年1月28日と2004年3月20日の差が2か月であるということです。

    DATEDIF("2001/2/28","2004/3/20","YD") は21が返されます。つまり、年越しの期間を無視して、2001年2月28日と2004年3月20日の差は21日であるということです。

    4.DATEINMONTH

    DATEINMONTH(date, number)

    関数は月にある一つの日付けに戻ります。

    例示:

    DATEINMONTH("2008-08-08",20) 2008-08-20 が返されます。

    5.DATEINQUARTER

    DATEINQUARTER(date, number)

    関数は四半期にある一つの日付に戻ります。

    例示:

    DATEINQUARTER("2009-05-05",20) は 2009-04-20 が返されます。

    6.DATEINWEEK

    DATEINWEEK(date, number)

    関数は一週間のnumber日目が返されます。

    例示:

    dateInWeek("2008-08-28",2)は 2008-08-26が返されます。

    7.DATEINYEAR

    DATEINYEAR(date, number)

    関数は一年間のnumber日目が返されます。

    例示:

    DATEINYEAR("2008/12/03",300)は 2008-10-26が返されます。

    8.DATESUBDATE——時間差

    DATESUBDATE(date1, date2, op)

    2つの日付間の時間差が返されます。

    opは、戻った時間の単位を表します

    sは、秒単位です。

    mは、分単位です。

    hは、時間単位です。

    dは、日単位です。

    wは、週単位です。

    例示:

    DATESUBDATE("2008-08-08","2008-06-06","h")1512が返されます。

    9.DATETONUMBER

    DATETONUMBER(date)

    1970 年 1月 1日 00:00:00 GMTから経過したミリ秒数が返されます。

    例示:

    DATETONUMBER("2008-08-08")1218124800000が返されます。

    10.DAY

    DAY(serial_number)

    戻った日付の日のことです。DAYは1と31の間の数です。

    Serial_number:求める年を設定します。パラメータが空の場合はデフォルトが当日の日付になります。

    注: ユーザーが日付を数値計算できるよう、FineReport は日付を系列数として保存し、系列数はそれに一致する日付のことを表します。

    1900年日付システムでは、FineReportは1900年1月1日を系列数2、1900年1月2日を系列数3、1900年1月3日を系列数4......として保存します。このように類推することができます。1900年の日付システムでは、1998年1月1日が系列数35796として保存されます。

    例示:

    DAY("2000/1/1")1が返されます。

    DAY("2006/05/05")5が返されます。

    DAY("1997/04/20")20が返されます。

    DAY(35796)1が返されます。

    11.DAYS360

    DAYS360(start_date,end_date,method)

    1年360日の計算方法(毎月30日、1年合計12ヶ月)に従って、2日間の期間の差の日数が返されます。これはの会計の計算で使用されます。金融システムが年12ヶ月、月30日に基づく場合、この関数は支払いの計算に役立ちます。

    Start_date と end_date :期間の日数の開始日と終了日を計算するために用いられます。

    Method:計算にヨーロッパの方法を採用するかアメリカの方法を採用するかが指定されます。

    Method 定義: FALSE または空の場合、アメリカ方法(NASD)に従います。開始日が1ヶ月の31日であれば、同月の30日が返されます。もし終了日が31日で、開始日が30日より早い場合、終了日は翌月の1日が返されます。さもなければ、終了日は今月の30日が返されます。

    TRUE ヨーロッパ方法。開始日も終了日も1ヶ月の31日の場合は、両方とも今月の30日になります。

    注: ユーザーが日付を数値計算できるよう、FineReport は日付を系列数として保存し、系列数はそれに一致する日付のことを表します。

    1900年日付システムでは、FineReportは1900年1月1日を系列数2、1900年1月2日を系列数3、1900年1月3日を系列数4......として保存します。このように類推することができます。1900年の日付システムでは、1998年1月1日が系列数35796として保存されます。

    例示:

    DAYS360(1998/1/30、1998/2/1)1が返されます。

    12.DAYSOFMONTH——月の日数

    DAYSOFMONTH(date)

    1900年1月以降の年の月に含まれる日数が返されます。

    例示:

    DAYSOFMONTH("1900-02-01")28が返されます。

    DAYSOFMONTH("2008/04/04")30が返されます。

    13.DAYSOFQUARTER——四半期の日数

    DAYSOFQUARTER(date)

    1900年1月以降の一年の四半期の日数が返されます。

    例示:

    DAYSOFQUARTER("2009-02-01")90が返されます。

    DAYSOFQUARTER("2009/05/05")91が返されます。

    14.DAYSOFYEAR——年の日数

    DAYSOFYEAR(year)

    1900 年以降の一年に含まる日数が返されます。

    例示:

    DAYSOFYEAR(2008)366が返されます。

    15.DAYVALUE

    DAYVALUE(date)

    この関数は、一つの日付を系列数に変換し、その値が一つの数字として返されます。

    変換原理: ユーザーが日付を数値式計算することをより便利にするために、1900年1月1日からdate 日付までの日数、一つの日付を一つの系列数に合わせます。

    パラメータ

    意味

    パラメータのフォーマット

    date

    変換が必要な日付

    日付の形式または日付を表すテキスト形式。例えば、“2000/2/28”です。

    数値フォーマット:整数、例えば1000001。

    date整数の場合、date1000000より大きく、unix時間と考えられます。また、date1000000以下で、1900年1月1日からの日数と考えられます。unix 時間とは、1970年1月1日から経過した秒数で、うるう秒は考慮されていません。

    例示:

    DAYVALUE("2000/1/1")36525が返されます。

    DAYVALUE(1000001)25568が返されます。

    注: date パラメーターの形式が規範に合わない場合は、1900年1月1日から現在の日付までの日数に戻ります。

    例えば、今日が2020/09/01の場合、DAYVALUE("2008/02/")44074に等しく、DAYVALUE("0.877766")44074が返されます。

    16.HOUR

    HOUR(serial_number)

    指定した時間の時間数が返されます。関数は、HOUR 0(0:00)から 23(23:00)までの間の整数として指定します。

    Serial_number:求める時間数を含む時間。

    例示:

    HOUR("11:32:40")11が返されます。

    17.MINUTE

    MINUTE(serial_number)

    指定された時間の分が返されます。その値は、0から59までの整数の中にあります。

    Serial_number:求める分を含む時間。

    例示:

    MINUTE("15:36:25")36が返されます。

    18.MONTH

    MONTH(serial_number)

    日付の月を返します。その値が1から12までの数字になります。

    Serial_number:求める月の日付が含まれ、パラメータが空の場合はデフォルトで当日の日付になります。

    注: ユーザーが日付を数値計算できるよう、FineReport は日付を系列数として保存し、系列数はそれに一致する日付のことを表します。

    1900年の日付システムでは、FineReportは1900年1月1日を系列数2、1900年1月2日を系列数3、1900年1月3日を系列数4......として保存します。このように類推することができます。

    例えば、1900年の日付システムでは、1998年1月1日を系列数 35796として保存された。

    例示:

    MONTH("2004/5/5")5が返されます。

    MONTH(35796)1が返されます。

    19.MONTHDELTA——日付から数ヶ月後の日付です。

    MONTHDELTA(date,delta)

    指定したdateからdeltaヶ月後の日付に戻ります。

    例示:

    MONTHDELTA("2008-08-08", 4) 2008-12-08が返されます。

    20.NOW——現在の時刻

    NOW()

    現在の時刻を取得します。

    例示:

    システム時間が2017-06-27 14:58:06の場合:

    NOW()2017-06-27 14:58:06です。

    21.SECOND

    SECOND(s erial_number)

    指定された時間の秒数が返されます。その値は0から59の間の整数です。

    Serial_number:求める秒数を含む時間。

    例示:

    SECOND("15:36:25")は、25が返されます。

    SECOND("15:36:25", "HH:mm:ss")は、25が返されます。

    22.TIME

    TIME(hour, minute, second)

    指定した時間を表す小数を返します。0:00:00(12:00:00 A.M.) 23:59:59(11:59:59 P.M.)間の時間は、0から0.99999999の間の対応する値に戻ることができます。

    TIME(19,43,24)7:43 PMが返されます。

    Hour:0から23の間の数字です。

    Minute:0から59の間の数字です。

    Second:0から59の間の数字です。

    例示:

    TIME(14,40,0)は2:40 PMが返されます。

    23.TODATE——日付のタイプの変換

    TODATE()

    関数は、さまざまな日付形式のパラメータを日付タイプに変換します。

    3つのパラメータの形式があります。

    1.パラメータは日付型のパラメータで、このパラメータを直接に戻します。

    例示:

    TODATE(DATE(2007,12,12))2007-12-12からなる日付に戻します。

    2.パラメータは1970 年 1 月 1 日 0 时 0 分0 秒から始まるミリ秒数で、対応する時間に戻ります。

    例示:

    TODATE("1023542354746") 2002-6-8 21:19:14に戻ります。

    3.パラメータは日付形式のテキストで、このテキストが対応する日付が返されます。

    例示:

    TODATE("2007/10/15") 2007-10-15 の構造の日付が返されます。

    TODATE("2007-6-8")2007-6-8 の構造の日付が返されます。

    4.2つのパラメータがあり、1番目のパラメータは日付形式のテキストで、2番目のパラメータは日付を解析するための形式です。

    例示:

    TODATE("1/15/07","MM/dd/yy")2007-01-15からなる日付が返されます。

    注:ここのフォーマットでは、月がMMを大文字に、年を小文字 yy (yyyyは行けません)にする必要があります。日付小文字: dd

    24.TODAY——現在の日付

    TODAY()

    現在の日付を取得します。

    例示:

    システムの日付が2011-06-20の場合:

    TODAY()2011-06-20が返されます。

    25.WEEKDAY——戻った週数のことです。

    WEEKDAY(Serial_number)

    日付を取得し、一週間にある一日に戻ります。戻り値は0から6の間の整数で、それぞれ一週間の一日(日曜日から土曜日)を表します。

    SSerial_number:入力した日付のこと。

    注: ユーザーが日付を数値計算できるよう、FineReport は日付を系列数として保存し、系列数はそれに一致する日付のことを表します。

    1900年の日付システムでは、FineReport電子帳票では、1900年1月1日を系列数2、1900年1月2日を系列3、1900年1月3日を系列数4......として保存します。このように類推することができます。1900年の日付システムでは、1998年1月1日が系列数35796として保存されます。

    例示:

    WEEKDAY("2005/9/10")は6(土)が返されます。

    WEEKDAY("2005/9/11")は0(日)が返されます。

    WEEKDAY(35796)は4(木)が返されます。

    26.WEEK——週間数を戻す

    1.関数の紹介

    WEEK(serial_num)

    年の何週目なのかを表す数値に戻ります。その中で、Serial_numは入力する日付です。

    2.関数ロジック

    年内の最初の週は最初の日曜日に対応する日付で始まり、また週の範囲は日曜日から土曜日までです。

    ユーザーが日付を数値式計算できるよう、FineReportは日付を系列数として保存し、系列数はそれに合った日付のことを表します。

    1900年の日付システムでは、FineReportは1900/1/1を系列数2、1900/1/2を系列数3......このように類推することができます。1998/1/1が系列数35796に保存されます。

    3.例:

    WEEK("2005/1/1") は52が返されます(今年の最初の日曜日の前の日付は、前年の最後の週の日付としてカウントされます)。

    WEEK("2005/1/6")は1が返されます(今年の最初の日曜日以降の日付は、今年から数えます)。

    WEEK(35796)は52が返されます(系列数は特定の日付に対応し、何週間目なのかを表す数字に変換されます)。

    4.パラメータ変更ロジック

    WEEK(serialnum,"F 1"): Excelのロジックを使用して、年の最初の日曜日の前の日付を最初の週として計算します。

    WEEK(serial_num,"F 7")またはWEEK(serial_num): FineReportのデフォルトロジックを使用して、年の最初の日曜日の前の日付を前年の最後の週の日付として、今年の最初の週は最初の日曜日に始まるとします。

    例示:

    WEEK("2019/1/5","F1")は1が返されます。

    WEEK("2019/1/5","F7")は52が返されます。

    WEEK("2019/1/6","F1")は2が返されます。

    WEEK("2019/1/6","F7")は1が返されます。

    27.WEEKDATE

    WEEKDATE(year,month,weekOfMonth,dayOfWeek)

    指定した年月の指定した週間にある一日の日付に戻ります。

    1.デフォルトで週が日曜日から始まることにする時、システムにある週の範囲は日曜日から土曜日までになります。

    例示:

    WEEKDATE(2009,10,2,1)は2009年10月の2週目の初日である日曜日の日付、即ち2009-10-04が返されます。

    最後のパラメータdayOfWeek-1の場合、週の最後の日を表します。

    例示:

    WEEKDATE(2009,12,1,-1)は2009年12月の第1週の最終日である土曜日の日付、即ち2009-12-05が返されます。

    2.週が月曜日から始まることを設定する時、この時点でシステムの週の範囲は月曜日から日曜日までになります。

    28.YEAR——年

    YEAR(serial_number)

    日付の年を返します。Yearは1900と9999の間の数字です。

    Serial_number:求める年を設定します。パラメータが空の場合はデフォルトが当日の日付になります。

    注: ユーザーが日付を数値計算できるよう、FineReport は日付を系列数として保存し、系列数はそれに一致する日付のことを表します。

    1900年の日付システムでは、FineReport 電子帳票は1900年1月1日を系列数2、1900年1月2日を系列数3、1900年1月3日を系列数4......として保存されます。

    例えば、1900年の日付システムでは、1998年1月1日を系列数 35796として保存された。

    例示:

    YEAR("2000/1/1")は2000が返されます。

    YEAR("2006/05/05")は2006が返されます。

    YEAR("1997/04/20")は1997が返されます。

    YEAR(35796)は1998が返されます。

    29.YEARDELTA

    YEARDELTA(date, delta)

    指定された日付からdelta年の日付を返します。

    例示:

    YEARDELTA("2008-10-10",10)は2018-10-10が返されます。

    30.LUNAR

    LUNAR(year, day, month)

    現在の日付が対応する旧暦の時刻を返します。year,month,day:それぞれ年月日に対応します。

    例示:

    2011年7月21日が対応する旧暦の時間を調べる必要がある場合:

    LUNAR(2001,7,21)は、辛巳年の6月1日が返されます。

    注:この式がサポートする時間帯は 1900-2049 年です。

    Attachment List


    Theme: FineReport 帳票実例
    既に最初
    既に最後
    • Helpful
    • Not helpful
    • Only read