この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

日付/時間関数と演算子

日時値を操作するには、クエリサービスでサポートされている以下の日付/時間関数を使用します。
表 1. 日付/時間関数でサポートされている日付とタイムスタンプの形式
yyyy-MM-dd HH:mm:ss.SSSZZZZ
yyyy-MM-dd HH:mm:ss.SSS

日付値 (年、月、週、日) の区切りにはハイフン「-」を、時間値 (時、分、秒) の区切りにはコロンを使用します。秒以下を指定する場合は、区切り文字にピリオド「.」を使用します。

メモ

表 2. 日付/時間関数でサポートされている時間の単位
単位
millisecond
second
minute
hour
day
week
month
quarter
year
関数 使用方法
current_date()
入力引数
(なし)
戻り値の型
Date
説明
クエリの開始時点の日付を返します。
current_time()
入力引数
(なし)
戻り値の型
Time
説明
クエリの開始時点の時刻を返します。
current_timestamp(p)
入力引数
この関数はデフォルトでは引数を受け取りません。
p: 秒以下の精度値 (省略可能)
戻り値の型
Time stamp with time zone
説明
クエリ開始時のタイムスタンプとタイムゾーンを、秒以下 3 桁までの精度で返します。必要な秒以下の精度を指定できます (省略可能)。
localtime()
入力引数
(なし)
戻り値の型
Time
説明
クエリ開始時のローカル時刻を返します。
localtimestamp()
入力引数
(なし)
戻り値の型
Time stamp with time zone
説明
クエリ開始時のローカルタイムスタンプを、秒以下 3 桁までの精度で返します。
current_timezone()
入力引数
(なし)
戻り値の型
Varchar
説明
サーバのタイムゾーンを返します。
date_add(unit, interval, timestamp)
入力引数
  • unit: 時間の単位
  • interval: 時間
  • timestamp: タイムスタンプ
戻り値の型
入力 timestamp と同じ。
説明
この関数は、入力 timestampunit のデータ型の間隔値を追加する場合に使用します。たとえば、
1SELECT date_add('day', 10, TIMESTAMP '2022-04-06 12:39:25')
は「2022-04-16 12:39:25」を返します。

負の間隔値を使用することで、入力 timestamp から減算できます。

メモ

date_diff(unit, timestamp1, timestamp2)
入力引数
  • unit: 時間の単位
  • timestamp1、timestamp2: タイムスタンプ
戻り値の型
Bigint
説明
この関数は、2 つの入力タイムスタンプの差を求めるために使用します。timestamp2 から timestamp1 を引いた値を指定された時間単位で返します。たとえば、
1SELECT date_diff('day', TIMESTAMP '2022-04-06 12:39:25', TIMESTAMP '2022-06-06 12:39:25')
は 62 を返します。
date_format(timestamp, formating_string)
入力引数
  • timestamp: タイムスタンプ
  • formating_string: String
戻り値の型
Varchar
説明
指定された入力形式のタイムスタンプを文字列として返します。書式設定した文字列の作成方法については、「書式指定子」のセクションを参照してください。
date_parse(string, formatting_string)
入力引数
  • string: String
  • formatting_string: String
戻り値の型
Timestamp
説明
入力された文字列を、入力された形式のタイムスタンプに変換します。たとえば、
1select date_parse('2016/7/22 6:05:04 PM','%Y/%m/%d %h:%i:%s %p') returns
は、「2016-07-22T18:05:04.000+00:00」を返します。書式設定した文字列の作成方法については、「書式指定子」のセクションを参照してください。
date_trunc(unit, timestamp)
入力引数
  • unit: 時間の単位
  • timestamp: タイムスタンプ
戻り値の型
Timestamp
説明
切り詰められた入力タイムスタンプを入力の単位で返します。たとえば、
1SELECT date_trunc( 'day', TIMESTAMP '2001-08-22 03:04:05.321')
は、「2001-08-22T00:00:00.000+00:00」を返します。
from_iso8601_date(string)
入力引数
string: ISO 8601 書式の日付文字列
戻り値の型
Date
説明
日付の文字列を日付に変換します。入力文字列には、カレンダーの日付、ISO 週番号を使用した週の日付、または年と日の組み合わせを指定できます。たとえば、
1SELECT from_iso8601_date('2014-W50')
は、「2014-12-08」を返します。
1SELECT from_iso8601_date('2014-143')
「2014-05-23」を返します。
from_iso8601_timestamp(string)
入力引数
string: String
戻り値の型
Time stamp with time zone
説明
ISO 8601 書式の日付文字列をタイムスタンプに変換します。入力文字列には、カレンダーの日付、ISO 週番号を使用した週の日付、または年と日の組み合わせを指定できます。たとえば、
1SELECT from_iso8601_timestamp('2020-05-11')
は、「2020-05-11T00:00:00.000+00:0」を返します。
1SELECT from_iso8601_timestamp('2020-W45')
は、「2020-11-02T00:00:00.000+00:00」を返します。
1SELECT from_iso8601_timestamp('2020-234')
は、「2020-08-21T00:00:00.000+00:00」を返します。
from_unixtime(unixtime_in_seconds)
入力引数
unixtime_in_seconds: UNIX 時間 (秒単位)
戻り値の型
Time stamp with time zone
説明
UNIX 時間 (秒単位) を日付とタイムスタンプに変換します。unixtime_in_seconds は、1970-01-01 00:00:00 UTC からの秒数です。たとえば、
1SELECT from_unixtime(1395379200.25)
は、「2014-03-21T05:20:00.250+00:00」を返します。
from_unixtime_nanos(unixtime_in_ns)
入力引数
unixtime_in_ns: UNIX 時間 (ナノ秒単位)
戻り値の型
Time stamp with time zone
説明
UNIX タイムスタンプをタイムゾーン付きで返します。unixtime_in_ns は 1970-01-01 00:00:00.000000000 UTC からのナノ秒数です。
human_readable_seconds(seconds)
入力引数
seconds: Double
戻り値の型
Varchar
説明
秒単位の入力を、週、日、時、分、秒などの人間が判読可能な文字列に変換します。たとえば、
1SELECT human_readable_seconds(109537920075)
は、「181,114 weeks, 2 days, 1 minute, 15 seconds (181,114 週、2 日、1 分、15 秒)」を返します。
now()
入力引数
(なし)
戻り値の型
Time stamp with time zone
説明
クエリ開始時のタイムスタンプとタイムゾーンを、秒以下 3 桁までの精度で返します。
parse_duration(string)
入力引数
string: 「値-単位」の書式の文字列
戻り値の型
Interval
説明
「value unit」の書式の入力文字列を時間間隔に変換します。value は小数点値、unit は時間の単位です。たとえば、
1SELECT parse_duration('42.8ms')
は、「"milliSeconds": 43」を返します。
to_iso8601(arg)
入力引数
arg: 日付、タイムスタンプ、またはタイムゾーン付きタイムスタンプを指定できます。
戻り値の型
Varchar
説明
入力を ISO 8601 文字列に書式設定します。たとえば、
1SELECT to_iso8601(TIMESTAMP '2020-05-11 11:15:05')
は、「2020-05-11T11:15:05」を返します。
with_timezone(timestamp, timezone)
入力引数
  • timestamp: タイムスタンプ
  • timezone: タイムゾーンを指定する文字列
戻り値の型
Time stamp with time zone
説明
timestamp と精度 p および timezone からタイムスタンプとタイムゾーンを返します。たとえば、
1SELECT with_timezone( TIMESTAMP '2020-03-01 00:00:00', 'Indian/Mauritius')
は、「2020-02-29T20:00:00.000+00:00」を返します。
表 3. 書式指定子
書式指定子 使用方法
%a 曜日名の略称 (Sun.. Sat)
%b 月名の略称 (Jan … Dec)。
%c 月、数値 (1 .. 12) 4
%D 月中の日付を表す英語の接尾辞 (0th、1st、2nd、3rd、...)。
%d 月中の日付、数値 (01 .. 31) 4
%e 月中の日付、数値 (1 .. 31) 4。
%f 秒の小数部 (印刷の場合は 6 桁: 000000 .. 999000。解析の場合は 1 ~ 9 桁の数字: 0 .. 999999999) 1
%H 時間 (00 .. 23).
%h 時間 (01 .. 12).
%I 時間 (01 .. 12).
%i 分、数値 (00 .. 59)。
%j 通日 (001 .. 366)。
%k 時間 (0 .. 23).
%l 時間 (1 .. 12).
%M 月名 (January.. December)。
%m 月、数値 (01 .. 12) 4。
%p AM または PM
%r 日中の時間、12 時間制 (%h:%i:%s %p に相当)。
%S 秒数 (00 .. 59)
%s 秒数 (00 .. 59)
%T 日中の時間、24 時間制 (%H:%i:%s に相当)。
%U 週 (00 .. 53)、週の開始曜日は日曜日。
%u 週 (00 .. 53)、週の開始曜日は月曜日。
%V 週 (01 .. 53)、週の開始曜日は日曜日。%X と共に使用。
%v 週 (01 .. 53)、週の開始曜日は月曜日。%x と共に使用。
%W 曜日名 (Sunday.. Saturday)。
%w 週の中の曜日 (0 .. 6)、週の開始曜日は日曜日 3。
%X 週が含まれる年、日曜日が週の初日、数値、4 桁。%V と共に使用。
%x 週が含まれる年、月曜日が週の初日、数値、4 桁。%v と共に使用。
%Y 年、数値、4 桁。
%y 年、数値 (2 桁) 2。
%% リテラルの % 記号。
%x x は、以前の行に記載されていない任意の x。