0

MySQL で CLSQL を使用しています。create-tableタイムスタンプ列タイプの列を指定するには、どのキーワードの組み合わせを渡す必要がありますか?

(create-table [foo] `(([bar] timestamp)))

認識されません (列タイプを指定しない場合のデフォルトである varchar 255 列を作成するだけです)。このリファレンス ページによるとwall-time、タイムスタンプ列を作成する必要がありますが、作成するだけdatetimeです (これは MySQL と同じではありませんtimestamp)。

また、上でリンクしたものよりも優れた CLSQL 列型リファレンスはありますか?

4

1 に答える 1

1

日時を使用したくないのはなぜですか?私が見つけた唯一の違いは範囲です。こちらをご覧ください

The DATETIME type is used when you need values that contain both date and time information. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.

The TIMESTAMP data type has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC. 

clsql のソースを見ると、たとえばhereが表示されます。

  (defmethod database-get-type-specifier ((type (eql 'wall-time)) args database
                                           (db-type (eql :mysql)))
    (declare (ignore args database))
     "DATETIME")

これは、コードに問題がないことを意味します。逆引用符 ` または単純引用符 \' を使用するのはどの引用符ですか?

于 2011-08-13T17:54:31.597 に答える