PC/NETのetcetra/2004-09-14 のバックアップ(No.1)

※※このサイトは2012年頃より更新を停止しています。※※

SQL

  • 日付データ型
    postgreSQLには下記4種の日付データ型がある。
    DATE(年月日) TIME(時分秒) TIMESTAMP(年月日時分秒) INTERVAL(時間差)
    ※TIMESTAMPってのはUNIXTIMESTAMPと違うので注意。
    ※間抜けな話だけど、俺は同じに考えてた。

    TIMESTAMP型は、
    postgreSQLとMySQLで微妙に挙動が違うところがあるようだ。
    postgreSQLは「default now」にしておけばinsert時に今の時間を値に入れてくれる。
    updateの時に勝手に書き換わったりはしない。

    しかしMySQLで
    「default now」と定義すると、文字列として「now」が値に入れられるとか(笑)
    また、MySQLで「TIMESTAMP not null」と定義すると、insert、updateの両方の場面で勝手に書き換わる。「TIMESTAMP」と定義すると、nullも受け付ける。

    この辺の挙動は自分で試して整理しておいたほうがよさそう。

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS