日付/時刻が計算された列関数¶
このセクションでは、Data Prep 計算ツールで使用できる日付/時刻が計算された列関数の構文および例を指定します。
日付/時刻の関数を使用するには、その datetime データ型として値を保存する必要があります。datetimeデータ型は、ヘッダー行のdatetimeデータ型アイコンで識別できます。値が datetime データ型として保存されない場合は、
DATEVALUE
関数を使用して値を datetime データ型に変換します。この記事のDATEVALUE ()
セクションを参照してください。
DATE¶
3つの別々の引数を取り、それらを組み合わせて、新しい日付/時刻列で日付を作成します。
構文
DATE(YEAR, MONTH, DATE)
YEAR
は 4 桁の値です。MONTH
は 2 桁の値です。DATE
は 2 桁の値です。
例
DATE(@year@, @month@, @day@)
使用に関する注意
MONTH
とDATE
のリーディングゼロはサポートされません。例:
DATE(1999,05,08)
はDATE(1999,5,8)
のように表される必要があります
DATEADD¶
期日からの多くの日、週、月を計算します。
構文
DATEADD(DATETIME, INCREMENT, INTERVAL)
DATETIME
は、開始したい日付です。INCREMENT
は、DATETIME
に追加するために加える数値です。INTERVAL
は追加する間隔(分、日、年など)です。次の点はINTERVAL
に認識された値のリストです:- 年
- 月
- 週
- 日
- 時間
- 分
- 秒 * ミリ秒
例
DATEADD(@Date Received@, 6, "months")
使用に関する注意
提供するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。指定されたINCREMENT
は整数である必要があります。ミリ秒は最大 +/- 2147483647を受け入れます。
DATEDIFF¶
2つの日付の間の日、週、月を計算します。
構文
DATEDIFF(DATETIME_1, DATETIME_2, INTERVAL)
DATETIME_1
は、開始したい日付です。DATETIME_2
は終了したい日付です。INTERVAL
は返したい間隔のタイプ(分、日、年など)です。次の点はINTERVAL
値に認識された値のリストです:- 年
- 月
- 週
- 日
- 時間
- 分
- 秒
- ミリ秒
例
DATEDIFF(@Date Received@, @Date Shipped@, “months”)
使用に関する注意
提供するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。指定されたINCREMENT
は整数である必要があります。ミリ秒は最大 +/- 2147483647を受け入れます。
DATETIME_2
に最新の datetime 値を使用することをお勧めします。DATETIME_2
値として最も早い日付を入力すると、DATEDIFF
関数は負の数値を返します。
DATEDIFF
は常に結果を最も近い整数に切り捨てます。例えば、2つの日付の差が 3 年と 11 ヶ月である場合、DATEDIFF
関数は 3 年として返します。
DATEFORMAT¶
datetime データ型として保存された値を、指定した形式でテキスト文字列に変換します。
構文
DATEFORMAT(DATETIME, FORMAT)
DATETIME
は変換したい日付です。FORMAT
はDATETIME
を変換したい形式です。
例
DATEFORMAT(@Date Received@, “dd-MMM-yyyy HH:mm”)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
DATETRUNC¶
不要なタイムスタンプの詳細を削除し、望ましい間隔に四捨五入します。これは、SQLDATE_TRUNC()
関数と同じ出力を提供します。ユースケース: コミュニティユーザーのサインアップのトレンドを探索し、各イベントが発生した時刻別にサインアップのイベントデータを集計する必要があります。年、月、または日でのサインアップだけではなく、時間、分、ミリ秒にも興味があります。DATETRUNC
を使用して、不要なタイムスタンプの部分を削除します。
構文
DATETRUNC(x)
ではx
が次の引数のいずれかとなります。
- 分
- 月
- 週
- 日
- 時間
- 秒
例
DATETRUNC(@DATE@, "months")
DATEVALUE¶
datetime テキスト文字列を datetime オブジェクトに変換し、計算に使用できます。
構文
DATEVALUE(DATETIME, FORMAT, TIME_ZONE)
DATETIME
はテキスト文字列としての datetime です。FORMAT
はDATETIME
の形式です。TIME_ZONE
は datetime オブジェクトに関連付けるタイムゾーンです。
例
DATEVALUE(@Date@, "yyyy-MMM-dd hh:mm a", "GMT-05:00")
使用に関する注意
DATEVALUE
関数を使用して、テキスト列を日付列、または入力した日付を日付オブジェクトに変換します。結果のデータオブジェクトにより、Data Prep 日付関数を使用できます。例えば、2つの日付の間の日数または年数を返します(日付操作については次の例を参照してください)。
日付オブジェクトは日付、時刻、または日付と時刻の組み合わせを保存できます。
テキストを Data Prep 日付オブジェクトに変換するには:Data Prep 日付形式構文の形式を指定します。繰り返し文字は、このフィールドの長さを示します。例えば、yyyy は 4 桁の年を意味します。
次のように 2012 年 2 月 28 日を指定した入力テキストがあるDateCol
列:
2012/28/02
日付オブジェクトに変換:
DATEVALUE(@DateCol@, "yyyy/dd/MM")
日付形式は入力データと一致する必要があります。
2012 年 2 月 28 日の表示が次の場合:
2012-15-02
次の日付形式を使用:
"yyyy-dd-MM"
2012 年 2 月 28 日の表示が次の場合:
2-28-12
次の日付形式を使用:
"dd-MM-yy"
時刻 1:29 pm の表記が次の場合:
13:29
次の時刻形式を使用:
"HH:mm"
時刻 1:29 pm の表記が次の場合:
01:29PM
次の時刻形式を使用:
"hh:mmaa"
高度な例
入力テキストが文字 T とタイムゾーンで区切られた日付と時刻の場合:
2012-02-28T09:29:00-05:00
入力テキストに文字通り表示される文字の場合、直線の引用符で文字を囲みます。次の日付形式を使用:
"yyyy-MM-dd'T'HH:mm:ssZZ"
日付操作¶
DATEDIFF
関数を使用して、2つの Data Prep の日付オブジェクト間の datatime 値の差を計算します。1998 年 8 月 1 日と日付列間の日数を計算:
DATEDIFF(DATEVALUE("01-AUG-1998" , "dd-MMM-yyyy"), @MyDate@ , "days")
DAY¶
日付から日を抽出します。
構文
DAY(DATETIME)
DATETIME
は日を抽出したい日付です。
例
DAY(@Date@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
戻り値は 1 から 31 までに及びます。
DAYOFWEEK¶
日付から 曜日を返します。
構文
DAYOFWEEK(DATETIME)
DATETIME
は評価したい日付です。
例
DAYOFWEEK(@Date@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
戻り値は 1(月曜日)から 7(日曜日)までに及びます。
DAYOFYEAR¶
日付から通日を返します。
構文
DAYOFYEAR(DATETIME)
DATETIME
は評価したい日付です。
例
DAYOFYEAR(@Date@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
戻り値は 1 から 365 までに及びます(うるう年は 366)。
ENDOFMONTH¶
新しい Datetime 列で月の最終日の datetime を返します。これは、Excel のEOMONTH
関数と同じ出力を提供します。
構文
ENDOFMONTH(DATE_TIME)
DATE_TIME
は Datetime オブジェクトです。
例
ENDOFMONTH(@Date@)
FROMUNIXTIME¶
Unix タイムスタンプから datetime オブジェクトを返します。これは、MySQLFROM_UNIXTIME()
関数と同じ出力を提供します。
構文
FROMUNIXTIME(MILLISECONDS)
MILLISECONDS
はミリ秒として表される int 値です。
例
FROMUNIXTIME(@UNIX TIME STAMP@)
HOUR¶
時刻から時間を抽出します。
構文
HOUR(DATETIME)
DATETIME
は時間を抽出したい時刻です。
例
HOUR(@Date@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
戻り値は、0(12:00 am)から 23(11:00 pm)までに及びます。
MAXDATE¶
2 つ以上の日付を比較し、最新の日付を返します。
構文
MAXDATE(DATETIME_1, [DATETIME_2, ...])
DATETIME_1
は最初の日付です。DATETIME_2
、... [オプション]は追加の日付です。
例
MAXDATE(@Target Ship Date@ ,@Date Shipped@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
いくつかの一般的なシナリオに対応するMAXDATE
関数については、次のようになります:
-
日付が 1 つだけ指定される場合、指定された日付が返されます。
-
すべての日付のタイムゾーンは、同じタイムゾーンに一時的に変換され、最新の日付を決定します。変換は、永続的ではなく、視覚の変換でもありません。
-
テキスト文字列を含むセルは無視されます。空白のセルは無視されます。
-
エラーがあるセルは無視されます。
-
datetime オブジェクトが見つからない場合、空白のセルが返されます。
MIDNIGHT¶
指定された時刻を真夜(00:00)にリセットします。
構文
MIDNIGHT(DATETIME)
DATETIME
はリセットしたい時刻です。
例
MIDNIGHT(@Date@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
タイムゾーンは影響されません。
MINDATE¶
2 つ以上の日付を比較し、比較して最も早い日付を返します。
構文
MINDATE(DATETIME_1, [DATETIME_2, ...])
DATETIME_1
は最初の日付です。DATETIME_2
、... [オプション]は追加の日付です。
例
MINDATE(@Target Ship Date@ ,@Date Shipped@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
いくつかの一般的なシナリオに対応するMINDATE
関数については、次のようになります:
-
日付が 1 つだけ指定される場合、指定された日付が返されます。
-
すべての日付のタイムゾーンは、同じタイムゾーンに一時的に変換され、最新の日付を決定します。変換は、永続的ではなく、視覚の変換でもありません。
-
テキスト文字列を含むセルは無視されます。空白のセルは無視されます。
-
エラーがあるセルは無視されます。
-
datetime オブジェクトが見つからない場合、空白のセルが返されます。
MINUTE¶
時間から分を抽出します。
構文
MINUTE(DATETIME)
DATETIME は、分を抽出したい時間です。
例
MINUTE(@Date@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
戻り値は、0 から 59 までに及びます。
MONTH¶
日付から月を抽出します。
構文
MONTH(DATETIME)
DATETIME
は月を抽出したい日付です。
例
MONTH(@Date@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
戻り値は、1 月から 12 月までに及びます。
NETWORKDAYS¶
2 つの datetime オブジェクト間の営業日の日数を返します。これは、Excel の NETWORKDAYS 関数と同じ出力を提供します。
構文
NETWORKDAYS(DATE_TIME_START, DATE_TIME_END)
DATE_TIME_START
は開始日の datatime オブジェクトです。DATE_TIME
は終了日付の datetime オブジェクトです。
例
NETWORKDAYS(@DATE@, DATE(2019,1,12))
NOW¶
現在の日付と時刻を返します。
構文
NOW(TIME_ZONE)
は現在の日付と時刻を返します。
オプションのTIME_ZONE
はタイムゾーンを設定します。
例
NOW("GMT-03:00")
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
関数でタイムゾーンが指定されていない場合、戻り値オブジェクトはデフォルトでグリニッジ標準時(GMT)となります。タイムゾーンのリストとその適切な構文のリストについては、日付と時刻構文の記事を参照してください。
QUARTER¶
指定された datetime オブジェクトから四半期を整数として返します。
構文
QUARTER(DDATE_TIME)
DATE_TIME
は datetime オブジェクトです。
例
QUARTER(@DATE@)
SECOND¶
時刻から秒を抽出します。
構文
SECOND(DATETIME)
DATETIME
は秒を抽出したい時刻です。
例
SECOND(@Date@)
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
戻り値は、0 から 59 までに及びます。
SETTIMEZONE¶
指定したタイムゾーンに時刻のタイムゾーンを変更します。
構文
SETTIMEZONE(DATETIME, TIME_ZONE)
DATETIME
はタイムゾーンを設定したい時刻です。TIME_ZONE
は datetime オブジェクトに関連付けるタイムゾーンです。
例
SETTIMEZONE(@Date Received@, "GMT-3:00")
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。
変換は時刻を変更せず、既存の時刻に新しいタイムゾーンを割り当てます。タイムゾーンのリストとその適切な構文のリストについては、日付と時刻構文の記事を参照してください。
TODAY¶
日付を返します。時刻は含まれません。
構文
TODAY()
例
TODAY()
WEEKOFYEAR¶
指定された datetime オブジェクトから週の数を整数として戻します。これは、Excel のWEEKNUM
関数と同じ出力を提供します。
構文
WEEKOFYEAR(DATE_TIME)
DATE_TIME
は datetime オブジェクトです。
例
WEEKOFYEAR<@DATE@>
WORKDAY¶
日付(開始日)前後の営業日として指定される日付の日数を返します。営業日は、週末と休日として指定される日付を除外します。これは、Excel のWORKDAY
関数と同じ出力を提供します。請求書の期日、配達予定日、または稼働日の日数を計算するとき、週末または休日を除外するためにWORKDAY
を使用します。
構文
WORKDAY(STARTDATE, DAYS)
STARTDATE
は開始日付を表す日付です。DAYS
は開始日前後の週末以外および休日以外の日数です。日の正の値は将来の日付を生成します。負の値は過去の日付を生成します。
例
WORKDAY(@DATE@ ,12)
YEAR¶
日付から年を抽出します。
構文
YEAR(DATETIME)
DATETIME
は年を抽出したい日付です。
例
Year()
使用に関する注意
指定するDATETIME
は datetime オブジェクト、datetime オブジェクトを含む列、または datetime オブジェクトを返す関数である必要があります。