Mac De PL/SQL RSS Reader #11 Tweet
feedの日付/時間は、rfc822または、rfc3339に準拠ということだった。
今回は、元のタイムゾーンは重要ではないので、timestamp with local time zone型に変換して持つことにした。
まず、暫定だがrfc822向けに、rfc822_dateStrToTimestampLTZ()というストアドファンクションを作成した。
rfc822形式の日時文字列をOracle10g の Timestamp with local time zone型に変換するストアドファンクションである。
尚、rfc822のタイムゾーンとして、
zone = "UT" / "GMT"
/ "EST" / "EDT"
/ "CST" / "CDT"
/ "MST" / "MDT"
/ "PST" / "PDT"
/ 1ALPHA
/ ( ("+" / "-") 4DIGIT )
と規定されているが、"UT"及び、夏時間(*DT)、英字1文字以外についてのみ実装した。(Oracle10gのto_timestamp_tz()関数で指定できるタイムゾーンリージョン "GMT"/"EST"/"CST"/"MST"/"PST" だけに対応した。"UT"、夏時間、英字1文字、または、上記、以外のタイムゾーンが設定されているような状況があれば、その時に考えることに。ちなみに、私が購読しているblogのfeedでは、"GMT"しか利用されていないのも理由の一つである。)
Oracle10gで指定できるタイムゾーンリージョンは以下のようにして確認できる。詳細は、「マニュアル「Oracle10 database SQLクイック・リファレンス 10g」を参照のこと。
SYS> select
2 unique tzname
3 from
4 v$timezone_names
5 where
6 tzname in (
7 'UT','GMT','EST','EDT','CST','CDT','MST','MDT','PST','PDT'
8 )
9 or length(tzname)=1;
TZNAME
----------------------------------------------------------------
CST
EST
GMT
MST
PST
SYS>
今日はここまで。次回は、上記仕様で作成したストアドファンクションのテスト及び、ソースを載せる予定。
2006/10/8追記。
SQLリファレンスの夏時間に関する記述を見ると、OracleのTimestamp with time zone型に関して、タイムゾーンリージョンを指定すると夏時間を考慮した変換がなされるとある。
聞いている曲:うん〜〜〜 iTunesで聞いているのは、Internet Radioなので、曲紹介はなし。
ちなみに、聞いているInternet Radioは、 SmoothJazz.com 。
| 固定リンク | 0
コメント