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

在创建表本身时为列配置一些默认值。例如:默认为空

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

这将存储 0000:00:00 00:00:00 和 '' 作为插入时的值。

于 2012-06-08T18:56:30.767 回答