2016-05-08 9 views
0

行が挿入された時刻を追跡する列を含む表を作成しようとしています。Curdate()を使用するときの構文エラー

以下のクエリは正常に動作します。テーブルの作成が完了し、データが追加されたときにtrack_dateの日付と時刻を表示できます。

CREATE TABLE tracker(id int, track_date DATETIME DEFAULT NOW()); 

私は現在、以下のクエリを実行するために日付を追跡する必要があると仮定しますが、構文エラーが発生します。

CREATE TABLE tracker_2(id int, track_date DATE DEFAULT CURDATE()); 

アドバイスをお願いします。

答えて

1

この時点では、MySQL documentationはかなり明確です。あなたのような関数の値となるように日付の 列をデフォルトに設定することができないこと、例えば、

これは意味:あなたは日付のDATETIMEまたはTIMESTAMP列のデフォルトを設定することはできませんが、 NOW()またはCURRENT_DATETIMESTAMPDATETIMEの列のデフォルト値は で、CURRENT_TIMESTAMPを指定できます。

オプションは、トリガーを使用するか、列を照会するときに時間コンポーネントを削除することです。

(私はNOW()は、質問と明確にするドキュメントの両方としてDATETIMEのデフォルトとしてを使用することができますので、文は、少し誤解を招くことに注意してください。段落は、特に、DATE列を参照しています。 )

関連する問題