AIと戦って、あなたの人生のリスク診断 >>

Ceate table test(
field1 date
)

insert into test values(current_timestamp);

上記の処理でDate型の列にcurrent_timestampデータを入れても、年月日までしかはいらないのですが、yyyy/mm/dd hh24:mi:ssの形で
はできないのでしょうか?oracleは10gです。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

データの暗黙的な変換が原因ではなく表示上の問題ではありませんか?


SQL> create table hoge ( d date );
表が作成されました。

SQL> insert into hoge values (current_timestamp);
1行が作成されました。

SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
セッションが変更されました。

SQL> select * from hoge;
D
-------------------
2007-11-07 12:00:12
    • good
    • 0

#1さんの解説で十分かと思いますが、


蛇足で、
>yyyy/mm/dd hh24:mi:ssの形ではできないのでしょうか?oracleは10gです
下記のようにすれば設定できます。
insert into test values(
TO_DATE( TO_CHAR(CURRENT_TIMESTAMP,'YYYY/MM/DD HH24:MI:SS'),'YYYY/MM/DD HH24:MI:SS' )
);
    • good
    • 0

date型なのでCURRENT_DATEを使います。

秒まで入るはず

date型 → 最小単位は秒
timestamp型 → 最小単位はミリ秒

ですが、date型にtimestamp型を入れた場合、時刻が丸ごと切り捨てられます。
それでそういった挙動になります。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QOracle(オラクル)で、日付時刻型の検索方法について

質問させていただきます。
データベースはオラクルを使っていて、
SQL文で、抽出するときにエラーが出て困っています。

日付時刻型が「2005/05/26 19:13:00」という感じで入ってます。
2005/05/26 を抽出したいのですが、
BETWEEN '2005/05/26 00:00:00' AND '2005/05/26 23:59:59'

だと、エラーでできません。
どなた様か、ご教授よろしくお願いしますm(_ _)m

Aベストアンサー

日付検索を行う場合は、以下のように書式を含める必要があります。

col BETWEEN TO_DATE('2005/05/26 00:00:00','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('2005/05/26 23:59:59','YYYY/MM/DD HH24:MI:SS')

ただ、厳密には

col >= TO_DATE('2005/05/26', 'YYYY/MM/DD')
AND
col < TO_DATE('2005/05/27', 'YYYY/MM/DD')

と書くべきでしょうね。

Q日付型カラムへのデータINSERT

お世話になります。ひとつご教授ください。

オラクル10g, ojdbc14でjdk1.4.2から接続です。

INSERT命令を使ってテーブルにレコードを追加する際に、DATE型のカラムに対して

INSERT TABLE_A (DATE1, ...) VALUES ('2006-4-27 12:00:00', ...);

を実行するとエラーORA-01861が出ます。そこで

INSERT TABLE_A (DATE1, ...) VALUES ('2006-4-27', ...);

このように記述して再度実行すると通ります。

このようなとき、時間の部分まで設定した値をカラムに格納したいときはどうしたらよろしいでしょうか?

よろしくお願いします。

Aベストアンサー

ごめんなさい。
説明と文例が違ってしまいました。
正しくはこちらです。

INSERT TABLE_A (DATE1, ...) VALUES (to_date('2006-4-27 12:00:00','yyyy/mm/dd hh24:mi:ss'), ...);
というように、to_date関数を使うのが一般的かと思います。


人気Q&Aランキング