日付/時刻関数
日付/時刻関数は、日付と時刻の値に対してアクションまたは計算を実行します。日付/時刻関数を使用して、間隔を加算または減算したり、現在の日付を検索したり、月の最初または最後の日を検索したり、日付/時刻値のコンポーネントを抽出したり、値を別の形式に変換します。
日付サポート
Designer は、1400 年 1 月 1 日より前の日付は処理できません。
AlteryxはISO形式 yyyy-mm-dd HH:MM:SS を使用して日付と時刻を表します。精度を高めるために(最大18桁の精度)、秒位置の後にピリオドと数字を追加します。例、
yyyy-mm-dd HH:MM:SS.5
.日付/時刻値がこの形式でない場合、Alteryxはその値を文字列とみなして読み取ります。日付/時刻形式で使用および操作するために列を変換するには、式エディターの DateTimeParse関数、または
日時ツール
を使用します。
日時関数の種類によっては、日付の形式を設定する必要があります。形式文字列は、指定子と区切り文字で構成されます。
日付/時刻単位のキーワード
これらのキーワードは、DateTimeAdd、DateTimeDiff、およびDateTimeTrim関数と互換性があります。キーワードでは大文字と小文字は区別されません。各ユニットで使用できるキーワードは、カンマで区切られています。
場合によっては、完全なキーワードまでの省略形を受け入れることもあります。これらは、 以下のリストで指定された
以内
で、許容される最短の省略形から完全なキーワードまでの範囲です。例として、 seconds では
sec
と
seconds
、また同様にその範囲の中間すべて、例えば
seco
が許容されます。キーワードは英語であり、他の言語への翻訳形はサポートされていません。
数値をサブ秒の時間のキーワードとして使用することもできます。これには、以下のリストで特に言及されていないユニットも含まれます。たとえば、10桁の精度を示すキーワード「10」を使用できます。
year upto years
mon upto months
day, days
hou upto hours
min upto minutes
sec upto seconds
ds, dsec, dsecs, deciseconds, 1
cs, csec, csecs, centiseconds, 2
ms, msec, msecs, milliseconds, 3
us, usec, usecs, microseconds, 6
ns, nsec, nsecs, nanoseconds, 9
ps, psec, psecs, picoseconds, 12
fs, fsec, fsecs, femtoseconds, 15
as, asec, asecs, attoseconds, 18
さまざまな精度単位でのDateTimeフィールドサイズの例については、次の表を参照してください。
名前 | 略称 | 日付/時刻サイズ | 例 |
---|---|---|---|
秒 |
| 19 (既定) | 2023-02-24 01:23:45 |
デシ秒(1/10秒) (1) |
| 21 (19 + 1 + 1) | 2023-02-24 01:23:45.1 |
10ミリ秒(1/100秒) (2) |
| 22 (19 + 1 + 2) | 2023-02-24 01:23:45.12 |
ミリ秒 (3) |
| 23 (19 + 1 + 3) | 2023-02-24 01:23:45.123 |
マイクロ秒 (6) |
| 26 (19 + 1 + 6) | 2023-02-24 01:23:45.123456 |
ナノ秒 (9) |
| 29 (19 + 1 + 9) | 2023-02-24 01:23:45.123456789 |
ピコ秒 (12) |
| 32 (19 + 1 + 12) | 2023-02-24 01:23:45.123456789012 |
フェムト秒 (15) |
| 35 (19 + 1 + 15) | 2023-02-24 01:23:45.123456789012345 |
アト秒 (18) |
| 38 (19 + 1 + 18) | 2023-02-24 01:23:45.123456789012345678 |
指定子
指定子は常にパーセント記号(%)で始まり、大文字と小文字が区別されます。データには少なくとも2桁の年が含まれる必要があります。
指定子 | DateTimeFormatからの出力 | DateTimeParseでサポートされる入力 |
---|---|---|
| サブ秒精度の桁数。 | 最大18桁の精度でサブ秒を指定できます。 |
| 曜日名の省略形 (Mon) | 曜日の任意の有効な略語 ("mon"、"Tues."、"Thur")。指定されたテキストが曜日でない場合にのみエラーを返します。注: Alteryxは、指定された曜日名が特定の日付に対して有効であることを確認しません。 |
| 曜日名の完全形("Monday") | 曜日名または曜日の有効な省略形 ("mon", "Tues.", "Thur")。指定されたテキストが曜日でない場合にのみエラーを返します。注: Alteryxは、指定された曜日名が特定の日付に対して有効であることを確認しません。 |
| 月名の省略形("Sep") | 月名の任意の有効な省略形("Sep"、"SEPT.")。指定されたテキストが月の名前でない場合にのみエラーを返します。 |
| 月名の完全形(September) | 月名または月名の任意の有効な省略形("Sep"、"SEPT.")。指定されたテキストが月の名前でない場合にのみエラーを返します。 |
| コンピューターのロケールの日付と時刻 | サポートされていません |
| 世紀("20") | サポートされていません |
| 日("01") | スペースを無視して 1 桁または 2 桁 ("1" または "01") |
| %m%d%yと同等 | サポートされていません |
| 日、先頭の 0 をスペースで置き換え("1") | スペースを無視して 1 桁または 2 桁 ("1" または "01") |
| %b と同じ(Sep) | 月名の任意の有効な省略形("Sep"、"SEPT.")。指定されたテキストが月の名前でない場合にのみエラーを返します。 |
| 24時間表示での時刻 (00~23) | 時は 0~23 までの2桁です。%pまたは%Pとの互換性はありません。 |
| 12時間表示での時刻 (01~12) | 時は 2 桁、1~12まで。%pまたは%Pに従う必要があります。 |
| 年の日付、001 - 365 (うるう年では366) | 年の日を 3 桁で示す連番、001 - 365 (うるう年では366) |
| 24 時間制の時、先頭の0はスペース (0 - 23) | 時間は2桁まで。 |
| 12時間制、先頭の0はスペース (1 - 12) | サポートされていません |
| 分 (00 - 59) | 分は2桁まで。 |
| 月 (01 - 12) | 1桁または2桁の月の数字を表示 (1 または 01~12) |
| AMまたはPM | 大文字と小文字を区別しない(aMあるいはPm)。%I が続く必要があります (大文字のアイ、12時間制の時間). |
| amまたはpm | 大文字と小文字を区別しない(aMあるいはPm)。%I が続く必要があります (大文字のアイ、12時間制の時間). |
| 秒 (00 - 59) | 秒は2桁まで。 |
| 24時間表記の時刻。%H:%M:%Sに相当します | サポートされていません |
| 月曜日 = 1 として示す10進数での曜日 (1 - 7) | サポートされていません |
| 週の始まり = 日曜日として示す週の数 (00 - 53) | サポートされていません |
| 日曜日 = 0 として示す数値での曜日 (0 - 6) | サポートされていません |
| 週の始まり = 月曜日として示す週の数 (00 - 53) | サポートされていません |
| コンピューターのロケールの日付 | サポートされていません |
| AMまたはPMを含む12時間制での時刻 (11:51:02 AM) | 時:分:秒 [AM / PM] |
| 西暦年の下2桁 ("16") | 最大4桁が読み取られ、区切り記号または文字列の末尾で停止し、現在の年から66を引いたものと現在の年に33を足したものと間の範囲にマッピングされます。例えば、2016では、1950 - 2049 が範囲となります。 6桁の日付の制限 年で最大4桁の数字が読み込まれるため、6桁の日付スタンプなどの区切り文字なしの2桁のみを持つことを目的とする形式(例えば、May 22, 2017では170522に似たデータの%y%m%d)は、依然として4桁として読み込まれます。この制限を回避するには、次の操作を実行します。
|
| 4桁の西暦年(2016) | 2桁または4桁の数字が読み込まれます。2桁は、現在の年から66を引いたものと、現在の年に33を足したものまでの範囲にマッピングされます。例えば、2016では、1950 - 2049 が範囲となります。 |
| UTC時刻からのオフセット (-600) | サポートされていません |
| フルタイムゾーン名 ("Mountain Daylight Time") | サポートされていません |
区切り記号
日付/時刻指定子の間に区切り記号を挿入して、書式文字列を形成します。
区切り記号 | DateTimeFormatからの出力 | DateTimeParseでサポートされる入力* |
---|---|---|
| / | / または - |
| - | / または - |
スペース | スペース | 空白文字のシーケンス |
| 改行 | サポートされていません |
| タブ | サポートされていません |
その他 | コンマ、ピリオド、コロンなどのその他の文字 | コンマ、ピリオド、コロンなどのその他の文字 |
* DateTimeParseは、スラッシュ(/)とハイフン( - )を区別しないで受け入れます。ただし、カンマ、コロン、およびその他の区切り記号はすべて、入力データと厳密に一致する必要があります。
言語パラメーター
次に示すのは、 DateTimeFormat 関数および DateTimeParse 関数でサポートされている l (言語) パラメーターに対応する値です。
日本語での言語名 | 原語での言語名 | 言語コード |
---|---|---|
英語 | English | en |
イタリア語 | Italiano | it |
フランス語 | Français | fr |
ドイツ語 | Deutsch | de |
日本語 | 日本語 | ja |
スペイン語 | Español | es |
ポルトガル語 | Português | pt |
簡体字中国語 | 简体中文 | zh |
上記の値に加えて、上記のいずれかで始まる、長さが2文字以上の値も使用できます。例えば、英語の場合は eng、engl、engli など、またスペイン語の場合は esp、espa、sp、spa、span などを使用できます。
日付/時刻関数
以下の日時関数を参照してください。
DateTimeAdd
DateTimeAdd(dt,i,u)
: 日付/時刻の値に特定の間隔を追加します。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
i
: 加算または減算する時間の正または負の整数。
u
:
日付/時刻単位のキーワード
セクションに記載されているキーワードを使用して、引用符で囲まれた日付/時刻単位。
例
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日であるため)。
DateTimeAdd("2016-03-30 01:02:03.000000", 495, "microseconds")
2016-03-30 01:02:03.000495を返します。
詳細を表示
期間内の端数は切り捨てられます。例えば、「1.5時間」を追加することはできません。代わりに、「90分」を追加します。
単位を追加しても、より小さい単位の値は変更されません。例えば、時間を追加しても分または秒の値は変更されません。結果の月にそのような日付がない場合を除いて、月の追加は日付または時刻を変更しません。その場合、その月の最後の日が返されます。
DateTimeDay
DateTimeDay(dt)
日 (day) の数値を日付時刻値で返します。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeDay("2017-03-24 11:43:23")
24を返します。
DateTimeDiff
DateTimeDiff(dt1,dt2,u)
: 最初の引数から 2 番目の引数を減算し、その差分の値を整数で返します。期間は、文字列ではなく指定された時間単位数の数値として返されます。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
u
:
日付/時刻単位のキーワード
セクションに記載されているキーワードを使用して、引用符で囲まれた日付/時刻単位。
例
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-02-29は2011-03-01の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日にわずか1秒満たない場合でも)。
DateTimeDiff('2017-02-28', '2016-02-29', 'Months')
11を返します(28日は2017年の2月の最終日ですが、28は29未満です)。
DateTimeDiff('2017-02-28 00:59:59.28139502', '2017-02-28 00:59:59.12383125', 'msecs')
157を返します(日付と時刻の値の間のミリ秒)。
詳細を表示
月と年の差については、終了日が開始日に達した時点でのみ 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) に変換します。文字列データ型に出力します。指定したフォーマットの精度が低い場合、出力では端数が切り捨てられます。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
f
: 変換するデータの形式を、書式文字列で表わしたものです。
l
: 言語パラメーター (オプション)。言語パラメーターは、Designer で選択した言語が既定値となります。例えば、Designer がフランス語に設定されている場合、この関数は、
DateTimeParse(dt,f,"Français")
を既定で読み取ります。使用可能な言語の値については、
言語パラメーター
を参照してください。
例
DateTimeFormat([DateTime_Out],"%d-%m-%Y")
日付が April 22, 2008 の場合に 22-04-2008 を返します (ISO 形式: 2008-04-22)。
DateTimeFormat([DateTime_Out],"%A","Spanish")
ISO 日付が 2020-07-14 の場合に "martes" を返します (7 月 14 日は火曜日)。
DateTimeFormat('11:59:57.890994389','%H:%M:%S.%5')
'11:59:57.89099'を返します(指定した数字に基づいて5桁の精度に切り捨てます)。
DateTimeFormat('11:59:57.99','%H:%M:%S,%3')
'11:59:57,990'を返します(指定したロケールの小数点記号を取得できます)この例では、小数点ではなくカンマを使用しています)。
DateTimeHour
DateTimeHour(dt)
: 日付/時刻値の時間の部分を返します。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeHour("2017-03-24 11:43:23")
11を返します。
DateTimeHour("2017-03-24")
真夜中は日付付きで時刻が指定されていない場合の想定される時間であるため、0を返します。
DateTimeLastOfMonth
DateTimeLastOfMonth()
: 現在の月の末日と、その日の終わりの 1 秒前 (23:59:59) に設定された時刻を返します。
Designer は、フォーミュラが最初に解析される日時を使用します。バッチプロセスでは、この時刻は新しいデータセットごとに使用されます。これにより、処理に時間がかかる場合でも一貫性を保つことができます。
DateTimeMinutes
DateTimeMinutes(dt)
: 日付/時刻値の分の部分を返します。
パラメーター
dt
: 選択された列または引用符で囲まれた指定された日付 / 時刻値として表される日付 / 時刻
データ。
例
DateTimeMinutes("2017-03-24 11:43:23")
43を返します。
DateTimeMonth
DateTimeMonth(dt)
月 (month) の数値を日付時刻値で返します。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeMonth("2017-03-24 11:43:23")
3を返します。
DateTimeMonth("11:43:23")
入力データが有効でないため、[Null]を返します。
DateTimeNow
DateTimeNow()
: 現在のシステムの日付/時刻を秒単位で返します。
DateTimeNowPrecise
DateTimeNowPrecise()
: 現在のシステムの日付/時刻を秒の小数位まで返します(精度は18桁まで)。オペレーティングシステムが提供する精度を超える精度を要求すると、この関数は残りの部分をゼロで埋めます。
例
DateTimeNowPrecise(3)
'2022-10-14 11:59:57.991'を返します。
DateTimeNowPrecise(12)
'2022-10-14 11:59:57.991238400000'を返します。
DateTimeParse
DateTimeParse(string,f,l)
: 指定した形式(f)と言語(l)の日付文字列をISO標準形式(yyyy-mm-dd HH:MM:SS オプションの日付/時刻精度を適用可)に変換します。指定したフォーマットの精度が低い場合、出力では端数が切り捨てられます。
パラメーター
dt
: 選択したフィールドまたは引用符の間の日付/時刻文字列として表される日付/時刻文字列データ。入力データは、文字列データ型である必要があり、f パラメーターで指定した形式と一致する場合は、任意の日付/時刻形式にすることができます。
f
: 変換する入力日付文字列データの形式であり、引用符で囲んだ形式文字列で表されます。
l
: (オプション) 変換する入力日付文字列データの言語。言語パラメーターは、Designer で選択した言語が既定値となります。例えば、Designer がフランス語に設定されている場合、この関数は、
DateTimeParse(string,f,"Français")
を既定で読み取ります。使用可能な言語の値については、
言語パラメーター
を参照してください。
例
DateTimeParse("2016/28-03","%Y/%d-%m")
2016-03-28を返します。
DateTimeParse([DateTimeNow],"%A %d %B %Y", "Français")
は、入力日付文字列が "mardi 14 juillet 2020" (2020年7月14日火曜日) の場合、2020-07-14 を返します。
DateTimeParse('Oct 4, 22 11:59:57.99', '%b %d, %y %H:%M:%S')
'2022-10-04 11:59:57'を返します。この関数は、末尾の数字を削除します。
DateTimeParse('Oct 4, 22 11:59:57.99', '%b %d, %y %H:%M:%S.%3')
'2022-10-04 11:59:57.990'を返します。この関数は、%3形式に一致するようにゼロを追加します。
DateTimeParse('Oct 4, 22 11:59:57.99', '%b %d, %y %H:%M:%S,%3')
'2022-10-04 11:59:57.000' を「',' instead of '.' was expected ('.' の代わりに ','が想定されています)」という警告とともに返します。
DateTimeSeconds
DateTimeSeconds(dt)
DateTimeSeconds(dt): 時刻の秒部分を日付/時刻値で返します。秒以下の精度も存在していれば含めます。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeSeconds('11:59:57.99')
57.99を返します。
DateTimeSeconds('11:59:57')
57を返します。
DateTimeStart
DateTimeStart()
: 現在のワークフローの実行が開始された日付と時刻を返します。
DateTimeToday
DateTimeToday()
: 今日の日付を返します。
予想される動作: DateTimeToday データ型
その名前に反して、
DateTimeToday()
は時刻値を返しません。代わりに、現在の日付だけが返されます。関数を ToDateTime() 関数でラップすると、現在の日付の午前 0 時に設定された日付/時刻値を返すことができます。
ToDateTime(DateTimeToday())
DateTimeToLocal
DateTimeToLocal(dt)
: UTC 日付/時刻をローカルシステムのタイムゾーンに変換します。DateTimeToLocal関数は現在、
dt
フィールドの日付/時刻精度をサポートしていません。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeToLocal('2014-08-01 20:01:25')
ローカルシステムのタイムゾーン (山岳部標準時) を 2014-08-01 14:01:25 として返します。
DateTimeToUTC
DateTimeToUTC(dt)
: 日付/時刻 (ローカルシステムのタイムゾーン)をUTCに変換します。DateTimeToUTC関数は現在、
dt
フィールドの日付/時刻精度をサポートしていません。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
例
DateTimeToUTC (DateTimeNow ())
は、ワークフロー実行時に世界協定時である 2014-08-01 20:01:25 を返します (ローカル山地標準時は 2014-08-01 14:01:25 でした)。
DateTimeTrim
DateTimeTrim(dt,t)
: 日付/時刻の不要な部分を削除し、修正した日付/時刻値を返します。
パラメーター
dt
: 選択した列または引用符で囲んで指定した日付/時刻値として表される日付/時刻データ。
t
: トリミングする種類オプションには以下が含まれます:
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)
: 年(year) の数値を日付時刻値で返します。
パラメーター
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
ToDateTime(x)
: 文字列、数値、または日付を日付/時刻値に変換します。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 を返します。