doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

SQLでTimestamp型のカラムにinsert/updateするための日付フォーマットはなに?

スポンサーリンク

新人君からの質問シリーズ 

 

先輩!なんかinsertしようししているんですが、エラーになるんすけど!!

あぁ・・それな。

状況

insert/update時に以下のエラーが発生する。

SQL0180N 日時値のストリング表記の構文が、間違っています。 SQLSTATE=22007

 

解説

DB接続ツールはいろいろ(Access、黒猫SQL、A5SQL、CSE…)ありますが、それらのツールにおいて、直接テーブルの値を編集するのではなく、SQLを書いてデータを登録・更新しなければならない場合も多い。

 

その際に、よくつまづくのがタイトルにもある通り

「Timestamp型のカラムにinsert/updateするための日付フォーマットはなに?」

というものである。

 

いや、そんなのつまづかないよ、当たり前だろ。

 

 

という方も多いと思いでしょうが、割と忘れてしまうことが(私は)多く、insertでエラーとなりはじかれることがある。

初心者としてはタイムタンプ型ってそもそも何よ?となるが、

それについては他にわかりやすい記事がたくさんあるので割愛する。

 

ちなみに表示されるエラーは

SQL0180N 日時値のストリング表記の構文が、間違っています。 SQLSTATE=22007

 

よくエラーになるのは、DB2SQLServerOracleもだっけ。。。

 

ダメな例:
insert into table(timestamp) values('2017/07/12 12:34:56);

正解の例:

insert into table(timestamp) values('2017-07-12 12:34:56);

 

社内にDB2OracleSQLServerが転がっていて面倒です。

 

なぜyyyy/mm/ddの形式で入力してしまうことが多いかというと、

最初に記載したDB接続ツールで表示されるTimestampのフォーマットがyyyy/mm/ddとなっているからである。

 

以上

 

 

スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)

スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)