新人君からの質問シリーズ
先輩!なんかinsertしようししているんですが、エラーになるんすけど!!
あぁ・・それな。
状況
insert/update時に以下のエラーが発生する。
SQL0180N 日時値のストリング表記の構文が、間違っています。 SQLSTATE=22007
解説
DB接続ツールはいろいろ(Access、黒猫SQL、A5SQL、CSE…)ありますが、それらのツールにおいて、直接テーブルの値を編集するのではなく、SQLを書いてデータを登録・更新しなければならない場合も多い。
その際に、よくつまづくのがタイトルにもある通り
「Timestamp型のカラムにinsert/updateするための日付フォーマットはなに?」
というものである。
いや、そんなのつまづかないよ、当たり前だろ。
という方も多いと思いでしょうが、割と忘れてしまうことが(私は)多く、insertでエラーとなりはじかれることがある。
初心者としてはタイムタンプ型ってそもそも何よ?となるが、
それについては他にわかりやすい記事がたくさんあるので割愛する。
ちなみに表示されるエラーは
SQL0180N 日時値のストリング表記の構文が、間違っています。 SQLSTATE=22007
よくエラーになるのは、DB2、SQLServer、Oracleもだっけ。。。
ダメな例:
insert into table(timestamp) values('2017/07/12 12:34:56);
正解の例:
insert into table(timestamp) values('2017-07-12 12:34:56);
社内にDB2、Oracle、SQLServerが転がっていて面倒です。
なぜyyyy/mm/ddの形式で入力してしまうことが多いかというと、
最初に記載したDB接続ツールで表示されるTimestampのフォーマットがyyyy/mm/ddとなっているからである。
以上

スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)
- 作者: 中山清喬,飯田理恵子,株式会社フレアリンク
- 出版社/メーカー: インプレス
- 発売日: 2018/11/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る