タイムスタンプ抽出関数

タイムスタンプ抽出関数は、指定されたタイムスタンプから対応する日付、週または索引値をフェッチします。

日付抽出関数は、タイムスタンプから対応する年/月/日/時/分/秒/ミリ秒/マイクロ秒/ナノ秒を返します。

例: 航空会社の手荷物追跡データからの乗客の統合された移動詳細の取得

航空会社アプリケーションでは、乗客が今度の旅行詳細の簡単な概要がわかると便利です。その他の時間関数を使用して、BaggageInfo表から乗客の統合された旅行詳細を取得できます。
SELECT DISTINCT
$s.fullName,
$s.bagInfo[].flightLegs[].flightNo AS flightnumbers,
$s.bagInfo[].flightLegs[].fltRouteSrc AS From,
concat ($t1,":", $t2,":", $t3) AS Traveldate
FROM baggageinfo $s, $s.bagInfo[].flightLegs[].flightDate AS $bagInfo,
day(CAST($bagInfo AS Timestamp(0))) $t1,
month(CAST($bagInfo AS Timestamp(0))) $t2,
year(CAST($bagInfo AS Timestamp(0))) $t3

説明:

時間関数を使用して、旅行の日付、月および年を取得できます。concat文字列関数は、取得した旅行レコードを連結して、アプリケーションに必要な形式で表示するために使用されます。最初にCAST式を使用してflightDatesをTIMESTAMPに変換し、タイムスタンプから日、月および年の詳細をフェッチします。

出力:
{"fullName":"Adam Phillips","flightnumbers":["BM604","BM667"],"From":["MIA","LAX"],"Traveldate":"1:2:2019"}

{"fullName":"Adelaide Willard","flightnumbers":["BM79","BM907"],"From":["GRU","ORD"],"Traveldate":"15:2:2019"}

問合せによって、乗客のクイック参照として機能するフライト詳細が返されます。

週抽出関数は、タイムスタンプから対応するweek/isoweekを返します。

例: 乗客の旅行日からの週およびISO週番号の決定

SELECT
$s.fullName,
$s.contactPhone, 
week(CAST($bagInfo.flightLegs[1].flightDate AS Timestamp(0))) AS TravelWeek,
isoweek(CAST($bagInfo.flightLegs[1].flightDate AS Timestamp(0))) AS ISO_TravelWeek
FROM baggageinfo $s, $s.bagInfo[] AS $bagInfo

説明: 最初にCAST式を使用してflightDateをTIMESTAMPに変換し、タイムスタンプから週およびisoweekをフェッチします。

出力:
{"fullName":"Adelaide Willard","contactPhone":"421-272-8082","TravelWeek":7,"ISO_TravelWeek":7}

{"fullName":"Adam Phillips","contactPhone":"893-324-1064","TravelWeek":5,"ISO_TravelWeek":5}

タイムスタンプ索引抽出関数は、タイムスタンプから対応する四半期/週/月/年索引を返します。

例: 指定されたタイムスタンプの曜日の確認

SELECT day_of_week("2024-06-19") AS DAYVAL1, 
day_of_week(parse_to_timestamp('06/19/24', 'MM/dd/yy')) AS DAYVAL2 
FROM BaggageInfo 
WHERE ticketNo=1762344493810

説明: 問合せの2番目のタイムスタンプは、サポートされていない形式'06/19/24'であるため、それをparse_to_timestamp関数にラップして有効にします。

出力:
{
  "DAYVAL1" : 3,
  "DAYVAL2" : 3
}