みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

Oracleに日付や時刻のリテラルはないのか

Webで色々検索しているのですが、なかなか「これだ!」という情報に当たらず、お教えいただきたく存じます。

OracleのSQLで、日付や時間を表現するリテラルは存在しないのでしょうか?
必ず to_date(文字列, 'YYYY/MM/DD') と言うように文字列表現と関数の組み合わせでなければならないのでしょうか?

to_date(文字列, 表現形式)とto_timestamp(文字列, 表現形式)を見つけたのですが、to_time(文字列, 表現形式)というのが見当たりませんでした。to_time関数は存在しないのでしょうか

オラクルのSQLはバージョンによって微妙に違う、というような記述を過去ログに見つけたのですが、8と9について情報をお願いします。

投稿日時 - 2002-07-26 00:08:26

QNo.322519

暇なときに回答ください

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

to_dateで時刻も入れられますよ。

こんな感じです。
insert into test_table values(to_date('2002/01/01 23:59:00', 'yyyy/mm/dd hh24:mi:ss'))

時刻に関しては書式の記述方法にくせがあるので注意してください。
(hh24やmiなど)

投稿日時 - 2002-07-26 11:10:15

補足

(日付を伴わない)純粋な時刻を to_date('23:59:00','hh24:mi:ss')
と表現することも可能でしょうか?

投稿日時 - 2002-07-27 22:49:40

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

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

回答(3)

ANo.3

>(日付を伴わない)純粋な時刻を to_date('23:59:00','hh24:mi:ss')
>と表現することも可能でしょうか?

ちょっと忘れてしまいました。
すぐ手元にOracleの環境がないもので。
to_charで、時刻のみ取り出すことは可能なはずです。

お急ぎでしたらご自分で試すほうが早いのでは?

投稿日時 - 2002-07-28 00:48:42

お礼

返事が遅くなりました。
こちらも、環境がないものですから、試せば分かるような事を
いろいろ伺ってしまいました。

投稿日時 - 2002-08-04 22:31:06

ANo.2

'2002-07-26'とそのまま書いても日付型なら日付が入ると思いますけど。
時刻も'2002-07-26 00:00:00'で入れられます。

投稿日時 - 2002-07-26 11:31:05

補足

Oracleに時刻型というのが存在するのか分からないのですが、
SELECT ... FROM ... WHERE 時刻型カラム <= '23:00:00'
のように記述したとき、文脈に応じてOracle側で'23:00:00'を時刻として取り扱ってくれる

という理解でよろしいでしょうか?

(時刻型が存在せず日付型しかない場合は、上の文章は「時刻」を「日付」に読み替えたら成り立つのかしら?)

投稿日時 - 2002-07-27 22:55:21