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

備忘録として書いておきます。

 

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

 

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

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

というものである。

 

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

 

という方も多いと思いでしょうが、割と忘れてしまうことが(私は)多く、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となっているからである。

 

以上