3

INSERT INTO空の文字列がデフォルトでデータ型が1900年1月1日DATETIME、またはデータ型が0にならないように、テーブルを作成するにはどうすればよいINTですか?

CREATE TABLE TEST
(
  TS DATETIME,
  VA INT
)

INSERT INTO TEST VALUES ('','')
INSERT INTO TEST VALUES ('','2')
INSERT INTO TEST VALUES ('2012-06-08 12:13:14','')

SELECT * FROM TEST

SQLフィドル

4

3 に答える 3

2

''DATETIME列に空の文字列を挿入しようとしないでください。

NULL代わりに使用してください。

これは、列をNULLとして定義した場合に機能します。

INSERT INTO TEST VALUES (NULL,'')
INSERT INTO TEST VALUES (NULL,'2')
INSERT INTO TEST VALUES ('2012-06-08 12:13:14','')
于 2012-06-08T18:49:06.660 に答える
0

これはあなたの質問の答えです:

CREATE TABLE TEST
(
  TS DATETIME  NULL DEFAULT NULL,
  VA INT  NULL DEFAULT NULL
)

INSERT INTO TEST (VA) VALUES (1)
INSERT INTO TEST (TS) VALUES ('2012-06-08 12:13:14')
于 2012-06-08T18:55:50.267 に答える
0

テーブル自体を作成するときに、列のデフォルト値を設定します。例: デフォルトで null

 CREATE TABLE TEST
    (
      TS DATETIME DEFAULT NULL,
      VA INT DEFAULT NULL
    )

これにより、挿入中に 0000:00:00 00:00:00 と '' が値として保存されます。

于 2012-06-08T18:56:30.767 に答える