タイムスタンプ抽出関数
タイムスタンプ抽出関数は、指定されたタイムスタンプから対応する日付、週または索引値をフェッチします。
日付抽出関数は、タイムスタンプから対応する年/月/日/時/分/秒/ミリ秒/マイクロ秒/ナノ秒を返します。
例: 航空会社の手荷物追跡データからの乗客の統合された移動詳細の取得
航空会社アプリケーションでは、乗客が今度の旅行詳細の簡単な概要がわかると便利です。その他の時間関数を使用して、
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
}