ワークフロー日付/時刻関数
日付/時刻関数は、日付と時刻の値に対してアクションまたは計算を実行します。日付/時刻関数を使用して、間隔を加算または減算したり、現在の日付を検索したり、月の最初または最後の日を検索したり、日付/時刻値のコンポーネントを抽出したり、値を別の形式に変換します。
日付サポート
Live Queryは、1400年1月1日より前の日付は処理できません。
Live Queryは、ISO形式yyyy-mm-dd HH:MM:SSを使用して日付と時刻を表します。日付/時刻値がこの形式でない場合、Live Queryはその値を文字列とみなして読み取ります。日付/時刻形式で使用および操作するために列を変換するには、式エディターのDateTimeParse関数、または日時ツールを使用します。
日時関数の種類によっては、日付の形式を設定する必要があります。書式文字列は、指定子と区切り記号で構成されます。
指定子
指定子は常にパーセント記号(%)で始まり、大文字と小文字が区別されます。データには少なくとも2桁の年が含まれる必要があります。
指定子 | DateTimeFormatからの出力 | DateTimeParseでサポートされる入力 |
|---|---|---|
%a | 曜日の省略形("Mon") | 曜日の任意の有効な省略形 ("mon"、"Tues."、"Thur")。指定されたテキストが曜日でない場合にのみエラーを返します。注: Live Queryは、指定された曜日名が特定の日付に対して有効であることを確認しません。 |
%A | 曜日の正式名("Monday") | 曜日名または曜日の有効な省略形 ("mon", "Tues.", "Thur")。指定されたテキストが曜日でない場合にのみエラーを返します。注: Live Queryは、指定された曜日名が特定の日付に対して有効であることを確認しません。 |
%b | 月の省略形("Sep") | 月の任意の有効な省略形("Sep"、"SEPT.")。指定されたテキストが月の名前でない場合にのみエラーを返します。 |
%B | 月の正式名("September") | 月名または月名の任意の有効な省略形("Sep"、"SEPT.")。指定されたテキストが月の名前でない場合にのみエラーを返します。 |
%c | コンピューターのロケールの日付と時刻 | サポート対象外 |
%C | 世紀("20") | サポート対象外 |
%d | 月の日付("01") | スペースを無視して 1 桁または 2 桁 ("1" または "01") |
%D | %m%d%yと同等 | サポート対象外 |
%e | 月の日付、先頭の 0 をスペースで置き換え("1") | スペースを無視して 1 桁または 2 桁 ("1" または "01") |
%h | %bと同じ("Sep") | 月の任意の有効な省略形("Sep"、"SEPT.")。指定されたテキストが月の名前でない場合にのみエラーを返します。 |
%H | 24時間表示での時刻(00 - 23) | 時は2桁まで(0-23)%pまたは%Pとの互換性はありません。 |
(大文字の "I") | 12時間表示での時刻(01 - 12) | 時は2桁まで(1-12)%pまたは%Pに従う必要があります。 |
%j | 年間の通し日、001-365日(うるう年では366) | 年間の通し日を3桁で表した日、001-365日(うるう年では366) |
%k | 24時間制の時、先頭の0はスペース(0-23) | 時は2桁まで。 |
(小文字の "l") | 12時間制、先頭の0はスペース (1 - 12) | サポート対象外 |
%M | 分、00-59 | 分は2桁まで。 |
%m | 月の数、01-12。 | 1桁または2桁の月の数字を表示 (1 または 01~12) |
%p | "AM"または"PM" | 大文字と小文字を区別しない("aM"あるいは"Pm")。%I が続く必要があります (大文字のアイ、12時間制の時間)。 |
%P | "am"または"pm" | 大文字と小文字を区別しない("aM"あるいは"Pm")。%I が続く必要があります (大文字のアイ、12時間制の時間)。 |
%S | 秒、00-59 | 秒は2桁まで。 |
%T | 24時間表記の時刻。%H:%M:%Sに相当します | サポート対象外 |
%u | 月曜日 = 1 として示す10進数での曜日 (1 - 7) | サポート対象外 |
%U | これは、週の始まりを日曜日として、週数00-53を返します。 | サポート対象外 |
%w | 日曜日 = 0 として示す数値での曜日 (0 - 6) | サポート対象外 |
%W | これは、週の始まりを月曜日として、週数00-53を返します。 | サポート対象外 |
%x | コンピューターのロケールの日付 | サポート対象外 |
%X | AMまたはPMを含む12時間表示での時刻(“11:51:02 AM”)。 | 時:分:秒 [AM / PM] |
%y | 年の最後の2桁("16")。 | 最大4桁が読み取られ、区切り記号または文字列の末尾で停止し、現在の年から66を引いたものと現在の年に33を足したものと間の範囲にマッピングされます。例えば、2016年では、1950-2049年が範囲となります。 6桁の日付の制限 年には4桁までの数字が読み込まれるため、6桁の日付スタンプなど、区切り文字なしで2桁のみ表示する形式(例えば、2017年5月22日を表す170522のような%y%m%d形式のデータ)でも、4桁で読み込まれます。この制限を回避するには、次の操作を実行します。
|
%Y | 年のすべての4桁("2016")。 | 2桁または4桁の数字が読み込まれます。2桁は、現在の年から66を引いたものと、現在の年に33を足したものまでの範囲にマッピングされます。例えば、2016年では、1950-2049年が範囲となります。 |
%z | UTC時刻からのオフセット("–600")。 | サポート対象外 |
%Z | フルタイムゾーン名 ("Mountain Daylight Time") | サポート対象外 |
区切り文字
日付/時刻指定子の間に区切り文字を挿入して、書式文字列を形成します。
区切り文字 | DateTimeFormatからの出力 | DateTimeParseでサポートされる入力* |
|---|---|---|
/ | / | /または- |
- | - | /または- |
スペース | 1スペース(空白) | 任意の一連の空白文字類 |
%n | 改行 | サポート対象外 |
%t | タブ | サポート対象外 |
その他 | コンマ、ピリオド、コロンなどのその他の文字。 | コンマ、ピリオド、コロンなどのその他の文字。 |
*DateTimeParseは、スラッシュ( / )とハイフン( - )を区別しないで受け入れます。ただし、カンマ、コロン、およびその他の区切り文字はすべて、入力データと厳密に一致する必要があります。
言語パラメーター
次に示すのは、DateTimeFormat関数およびDateTimeParse関数でサポートされている「l」 (言語)パラメーターに対応する値です。
英語での言語名 | 原語での言語名 | 言語コード |
|---|---|---|
English | English | en |
Italian | Italiano | it |
French | Français | fr |
German | Deutsch | de |
Japanese | 日本語 | ja |
Spanish | Español | es |
Portuguese | Português | pt |
Chinese | 简体中文 | zh |
上記の値に加えて、上記のいずれかで始まる、長さが2文字以上の値も使用できます。例えば、英語の場合は eng、engl、engli など、またスペイン語の場合は esp、espa、sp、spa、span などを使用できます。
DateTimeAdd
DateTimeAdd(dt,i,u): 日付/時刻の値に特定の間隔を追加します。
パラメーター
dt: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
i: 加算または減算する時間の正または負の整数。
u: 引用符で囲んで指定した日付時刻単位。year(年)、month(月)、day(日)、hour(時)、minutes(分)、second(秒) のいずれか。
例
DateTimeAdd(DateTimeToday(), -1, "days")は、昨日の日付を返します。
DateTimeAdd(DateTimeFirstOfMonth(), 1, "months")は、翌月の最初の値を返します。
DateTimeAdd("2016-01-30", 1, "month") は、2016-02-29を返します(2月には30日が存在しないため、その年の最終日である29日が返されます)。
DateTimeAdd("2016-03-30", -1, "month") は、2016-02-29を返します(2月には30日が存在しないため、その年の最終日である29日が返されます)。
追加情報
期間内の端数は切り捨てられます。例えば、「1.5時間」を追加することはできません。代わりに、「90分」を追加します。
単位を追加しても、より小さい単位の値は変更されません。例えば、時間を追加しても分または秒の値は変更されません。結果の月にそのような日付がない場合を除いて、月の追加は日付または時刻を変更しません。そのような日付がない場合は、その月の最後の日に進みます。
DateTimeDay
DateTimeDay(dt): 日付/時刻値の日の数値を返します。
パラメーター
dt: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeDay("2017-03-24 11:43:23")は、24を返します。
DateTimeDiff
DateTimeDiff(dt1,dt2,u): 最初の引数から2番目の引数を減算し、整数の差として返します。期間は、文字列ではなく指定された時間単位数の数値として返されます。
パラメーター
dt: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
u: 引用符で囲んで指定した日付時刻単位。year(年)、month(月)、day(日)、hour(時)、minutes(分)、second(秒) のいずれか。
例
DateTimeDiff("2016-02-15 00:00:00", "2016-01-15 00:00:01", "Months")は、1を返します(開始日と終了日が同じ日付であるため)。
DateTimeDiff("2012-02-29","2011-03-01","years")は、0を返します(2012年2月29日が2011年3月1日から365日後であっても、2月29日は3月1日より前の日付であるため、「1年」はまだ経過していないため)。
DateTimeDiff("2016-02-14", "2016-01-15", "Months")は、0を返します(2月の日付が1月の日付よりも小さいため)。
DateTimeDiff("2016-02-14 23:59:59", "2016-01-15 00:00:00", "Months")は、0を返します(必要な日付まであと1秒足りない場合でも)。
DateTimeDiff('2017-02-28', '2016-02-29', 'Months')は、11を返します(2017年の2月28日はその年の2月の最終日ですが、28は29より小さいためです)。
追加情報
月と年の差については、終了日が開始日に達した時点でのみ1つの月がカウントされ、1日の時刻は無視されます。
日、時、分、および秒の精度については、結果は正確に計算され、小数部分は四捨五入されずに切り捨てられます。よって...
DateTimeDiff(‘2016-01-01 00:59:59’, ‘2016-01-01 00:00:00’, ‘Hours’)は、0 を返します。DateTimeDiff(‘2016-01-01 23:59:59’, ‘2016-01-01 00:00:00’, ‘Days’)は、0 を返します。精度の名前は、最初の 3 文字 (sec や min など) に短縮できます。大文字と小文字は区別されません。
時間差を秒単位で保存する場合は注意してください。Int32 では、秒で 68 年、分で 4082 年の差のみを保持できます。DoubleまたはInt64を使用することで、サポートされているすべての日付間の間隔を保持できます。
DateTimeFirstOfMonth
DateTimeFirstOfMonth(): 月の初日の午前 0 時を返します。
DateTimeFormat
DateTimeFormat(dt,f,l): 日付/時刻データを別のアプリケーションで使用できるように、ISO形式から、指定した言語(l)の、指定した別の形式(f)に変換します。文字列データ型に出力します。
注記
この関数は、DatabricksのLive Queryでは使用できません。
パラメーター
dt: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
f: 変換するデータの形式を、書式文字列で表わしたものです。
l: 言語パラメーター (オプション)。言語パラメーターは、Designer Cloudで選択した言語が既定値となります。例えば、言語がフランス語に設定されている場合、この関数は、DateTimeParse(dt,f,"Français")を既定で読み取ります。
例
DateTimeFormat([DateTime_Out],"%d-%m-%Y")は、日付2008年4月22日(ISO形式: 2008-04-22)を22-04-2008に変換して返します。
DateTimeFormat([DateTime_Out],"%A","Spanish")は、ISO形式の日付2020-07-14(火曜日)に対して「martes」を返します。
DateTimeHour
DateTimeHour(dt): 時刻の時間(h)部分を日付時刻値で返します。
パラメーター
dt: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeHour("2017-03-24 11:43:23")は、11を返します。
DateTimeHour("2017-03-24")は、0を返します。これは、時刻が指定されていない場合、午前0時が既定の時刻として扱われるためです。
DateTimeLastOfMonth
DateTimeLastOfMonth(): 現在の月の最後の日を返します。時計はその日の終わりの1秒前(23:59:59)に設定されます。
Live Queryは、フォーミュラ式が最初に解析される日時を使用します。バッチプロセスでは、この時刻は新しいデータセットごとに使用されます。これにより、処理に時間がかかる場合でも一貫性を保つことができます。
DateTimeMinutes
DateTimeMinutes(dt): 時刻の「分」の部分を日付時刻値で返します。
パラメーター
dt: 選択された列または引用符で囲まれた指定された日付 / 時刻値として表される日付 / 時刻
データ。
例
DateTimeMinutes("2017-03-24 11:43:23")は、43を返します。
DateTimeMonth
DateTimeMonth(dt): 日付/時刻値の月の数値を返します。
パラメーター
dt: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeMonth("2017-03-24 11:43:23")は、3を返します。
DateTimeMonth("11:43:23")は、[Null]を返します。これは、入力データが無効であるためです。
現在日時
DateTimeNow(): 現在の日付と時刻を返します。
DateTimeParse
DateTimeParse(dt, f): 指定した形式(f)と言語(l)の日付文字列をISO標準形式(yyyy-mm-dd HH:MM:SS オプションの日付/時刻精度を適用可)に変換します。指定したフォーマットの精度が低い場合、出力では端数が切り捨てられます。
注記
この関数は、DatabricksのLive Queryでは使用できません。
パラメーター
dt: 選択したフィールドまたは引用符の間の日付/時刻文字列として表される日付/時刻文字列データ。入力データは、文字列データ型である必要があり、f パラメーターで指定した形式と一致する場合は、任意の日付/時刻形式にすることができます。f: 変換する入力日付文字列データの形式であり、引用符で囲んだ形式文字列で表されます。
例
DateTimeParse("2016/28-03","%Y/%d-%m")2016-03-28を返します。DateTimeParse('Oct 4, 22 11:59:57.99', '%b %d, %y %H:%M:%S')'2022-10-04 11:59:57'を返します。この関数は、末尾の数字を削除します。
DateTimeSeconds
DateTimeSeconds(dt): 時刻の「秒」の部分を日付/時刻値で返します。
パラメーター
dt: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
DateTimeToday
DateTimeToday(): 今日の日付を返します。
予想される動作: DateTimeToday データ型
その名前に反して、DateTimeToday()は時刻値を返しません。代わりに、現在の日付だけが返されます。以下のように、DateTimeToday()関数をToDateTime()関数でラップすると、現在の日付の午前0時に設定された日付/時刻値を返すことができます。
ToDateTime(DateTimeToday())
DateTimeTrim
DateTimeTrim(dt, f): 日付/時刻値の不要な部分を削除し、修正した日付/時刻値を返します。
注記
この関数は、DatabricksのLive Queryでは使用できません。
パラメーター
dt: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。f:: トリミングするタイプ。オプションには以下が含まれます。Firstofmonth:: 該当月の初日にトリミング(month と同じ)。
lastofmonth: 該当月の最終日の終わり 1 秒前にトリミング。
year: 1 月 1 日の午前 0 時にトリミング。
month: 該当月の初日の午前 0 時にトリミング。
day: 該当日の午前 0 時にトリミング。これは、日付時刻を該当日の 0 時(日付ではない)に変換します。
hour: 該当する時(hour)にトリミング。
minute: 該当する分(minutes)にトリミング。
seconds: [日付/時刻単位のキーワード]セクションのキーワードを使用して、秒と2番目の分数の引用符でトリミングします。
日付時刻をトリミングしても、返される値は四捨五入されません。例えば、時(hour)にトリミングされた時刻15:59:59は、16:00:00ではなく15:00:00になります。
例
DateTimeTrim("2016-12-07 16:03:00","year")2016-01-01 00:00:00を返します。DateTimeTrim('2016-12-07 11:59:57.99','msec')11:59:57.990を返します。DateTimeTrim('2016-12-07 11:59:57.99',4)は、11:59:57.9900を返します。DateTimeTrim('2016-12-07 11:59:57.123456789','milliseconds')は、11:59:57.123を返します。
DateTimeYear
DateTimeYear(dt): 日付/時刻値の年の数値を返します。
パラメーター
dt: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeYear("2017-03-24 11:43:23")2017を返します。
ToDate
ToDate(x): 文字列、数値、または日付/時刻値を日付に変換します。
入力文字列は、YYYY-MM-DD 形式にする必要があります。例えば、2020-10-31 のようにします。
入力数値は、Excel の日付形式にする必要があります。この形式の数値は、01-01-1900 以降の日数を表します。例えば、7000 は 03-01-1919 に相当します。
入力日付/時刻は、YYYY-MM-DD hh:mm:ss の形式にする必要があります。例えば、2020-10-31 12:00:00 のようにします。
例
ToDate(2020-10-31) 日付として2020-10-31を返します。
ToDate(7000) 日付として1919-03-01を返します。
ToDate(2020-10-31 12:00:00) 日付として2020-10-31を返します。
ToDateTime
DateTimeTrim(ToDateTime(x), t): 文字列、数字、または日付値を日付/時刻に変換します。ToDateTime関数は、秒を超える精度をサポートしていません。Excelの値を秒単位表示(5桁、最大99999)に制限してください。
入力文字列は、YYYY-MM-DD hh:mm:ss 形式にする必要があります。例えば、2020-10-31 12:00:00 のようにします。
入力数値は、Excel の日付/時刻形式にする必要があります。この形式の数値は、01-01-1900 以降の日数を表します。例えば、7000.354167 は、03-01-1919 at 8:30 AM に相当します。
例
ToDateTime('2020-10-31')日付/時刻として2020-10-31 00:00:00を返します。ToDateTime(7000.354167)日付/時刻として1919-03-01 08:30:00を返します。ToDateTime('2020-10-31 12:00:00')日付/時刻として2020-10-31 12:00:00を返します。