Question#5(DP-420)
あなたは Azure サブスクリプションを所有しており、その中には Azure Cosmos DB for NoSQL アカウントが含まれています。
複数のアイテムを返す SQL クエリを記述する必要があります。ソリューションは以下の要件を満たす必要があります。- 返される各アイテムに、ISO 8601 文字列としてフォーマットされた現在の協定世界時 (UTC) の日付と時刻を含めること。
- 開発の労力を最小限に抑えること。
正解:C
この問題は、Azure Cosmos DB の組み込み関数(Built-in functions)の戻り値の型とフォーマットの違いを理解しているかを問うています。
1. なぜ「(GetCurrentDateTime)」が正解なのか- フォーマットの要件: 要件には「ISO 8601 文字列」と指定されています。
- 動作:
GetCurrentDateTime()関数は、現在の UTC 日付と時刻を、まさに ISO 8601 フォーマット(例:2026-01-17T22:54:11.1234567Z)の文字列として返します。 - 開発労力: 組み込み関数をそのまま呼び出すだけなので、追加のコード(UDF など)を記述する必要がなく、開発労力が最小限で済みます。
- (UDF): 独自の関数を JavaScript で記述・登録すれば同じことが可能ですが、組み込み関数が存在するため「開発労力を最小限に抑える」という要件に反します。
- (GetCurrentTimestamp): この関数は、現在の UTC 日付と時刻を**数値(Unix タイムスタンプ、ミリ秒単位)**として返します。ISO 8601 文字列ではないため不適切です。
- (DateTimePart): この関数は、指定された日付文字列から「年」や「月」などの特定の部分を抽出するための関数です。現在の時刻を取得するものではありません。
- ISO 8601 文字列:
GetCurrentDateTime()で取得。クエリでの比較(文字列比較として動作)に適している。 - Unix タイムスタンプ:
GetCurrentTimestamp()で取得。数値計算や効率的なインデックスに適している。
- 問い: UTC 日時を ISO 8601 文字列で取得したい。
- 正解:
GetCurrentDateTime()を使用する。

コメント