こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

14桁の日付(YYYYMMDDHHMMSS)を日付(YYYY/MM/DD)に変換できますか?

データとして14桁の値で日付が登録されています。
この14桁の値(YYYYMMDDHHMMSS)を日付(YYYY/MM/DD)に変換できますか?
やりたい事はこの14桁の値から現在の日付から過去1年以内のデータを取得したいと思っていますが・・・
どのようにしたらいいのでしょうか?
申し訳ありません、アドバイスいただけませんでしょうか?
宜しくお願いします。

投稿日時 - 2009-11-01 02:27:45

QNo.5412776

すぐに回答ほしいです

質問者が選んだベストアンサー

こんにちわ。

> この14桁の値(YYYYMMDDHHMMSS)を日付(YYYY/MM/DD)に変換できますか?
文字型データを日付に変換するのであれば、TO_DATE() を使用します。
単純に変換する場合は、to_date(col, 'YYYYMMDDHHMISS') です。
※ 時間は24時間表記の'HH24' の可能性もあるので確認して下さい。

今年1の1月1日からと言う事であれば、変換した日付を年で切り捨てます。
→ trunc(to_date(col, 'YYYYMMDDHH24MISS'))
正確に1年前であれば、add_months で12ヶ月前を算出します。
→ add_months(to_date(col, 'YYYYMMDDHH24MISS'), -12)
更に月で切り捨てれば、該当月の1日を算出できます。
→ trunc(add_months(to_date(col, 'YYYYMMDDHH24MISS'), -12), 'MM')

OTN Japan (http://www.oracle.com/technology/global/jp/index.html)
でマニュアルを入手できますので、詳細はSQL リファレンスで確認して下さい。

投稿日時 - 2009-11-01 08:57:58

お礼

回答ありがとございます。

返事が遅くなってすみません。
リファレンスを一度、読むようにします。
大変、よくわかりました。
では、失礼します。

投稿日時 - 2009-11-06 21:55:36

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんにちは。
過去1年以内のデータを取得したいのならば下記でどうでしょうか。

SQL> desc test;
名前 NULL? 型
-------------------- ------- ----------------------------
VCDT VARCHAR2(14)

SQL> select * from test;

VCDT
----------------------------
20081002161322
20081120161322

SQL> select * from test
2 where vcdt >= to_char(add_months(sysdate,-12),'yyyymmddhh24miss');

VCDT
----------------------------
20081120161322

本日を1年前としてそれより大きいと判定しました。

投稿日時 - 2009-11-01 16:33:40

お礼

回答ありがとございます。

返事が遅くなってすみません。
サンプルまで作成して、説明してくれてありがとうございます。
大変、ためになりました。
では、失礼します。

投稿日時 - 2009-11-06 21:54:25

あなたにオススメの質問