• ベストアンサー

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

Webで色々検索しているのですが、なかなか「これだ!」という情報に当たらず、お教えいただきたく存じます。 OracleのSQLで、日付や時間を表現するリテラルは存在しないのでしょうか? 必ず to_date(文字列, 'YYYY/MM/DD') と言うように文字列表現と関数の組み合わせでなければならないのでしょうか? to_date(文字列, 表現形式)とto_timestamp(文字列, 表現形式)を見つけたのですが、to_time(文字列, 表現形式)というのが見当たりませんでした。to_time関数は存在しないのでしょうか オラクルのSQLはバージョンによって微妙に違う、というような記述を過去ログに見つけたのですが、8と9について情報をお願いします。

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

to_dateで時刻も入れられますよ。 こんな感じです。 insert into test_table values(to_date('2002/01/01 23:59:00', 'yyyy/mm/dd hh24:mi:ss')) 時刻に関しては書式の記述方法にくせがあるので注意してください。 (hh24やmiなど)

happy_people
質問者

補足

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

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

>(日付を伴わない)純粋な時刻を to_date('23:59:00','hh24:mi:ss') >と表現することも可能でしょうか? ちょっと忘れてしまいました。 すぐ手元にOracleの環境がないもので。 to_charで、時刻のみ取り出すことは可能なはずです。 お急ぎでしたらご自分で試すほうが早いのでは?

happy_people
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • TMINET
  • ベストアンサー率32% (45/140)
回答No.2

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

happy_people
質問者

補足

Oracleに時刻型というのが存在するのか分からないのですが、 SELECT ... FROM ... WHERE 時刻型カラム <= '23:00:00' のように記述したとき、文脈に応じてOracle側で'23:00:00'を時刻として取り扱ってくれる という理解でよろしいでしょうか? (時刻型が存在せず日付型しかない場合は、上の文章は「時刻」を「日付」に読み替えたら成り立つのかしら?)

すると、全ての回答が全文表示されます。

専門家に質問してみよう