色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql nozeroindate

MySQL中的nozeroindate是什么?它是指將日期類型的數(shù)據(jù)存儲(chǔ)為00-00-0000而不是NULL值。

nozeroindate被稱為MySQL的strict mode,在這種模式下,如果日期或時(shí)間字段為空,則MySQL將插入'0000-00-00 00:00:00',而不是NULL值。

下面是一個(gè)例子:

CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`created` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

在上面的例子中,我們?yōu)?created'字段設(shè)置了默認(rèn)值為'0000-00-00 00:00:00',這意味著如果沒有設(shè)置值,則MySQL將使用這個(gè)默認(rèn)值。這在某些情況下是有用的,例如如果您不能容忍N(yùn)ULL值而希望使用相同的默認(rèn)值。

然而,這種方法通常被認(rèn)為是不推薦的,因?yàn)?0000-00-00 00:00:00'與實(shí)際上沒有日期或時(shí)間信息的NULL值是不同的。例如,如果您想查找'created'字段等于2019年12月1日的所有記錄,則'0000-00-00 00:00:00'將被視為一個(gè)有效的日期。這可能會(huì)導(dǎo)致混淆和錯(cuò)誤的結(jié)果。

因此,最好在MySQL中使用NULL而不是'0000-00-00 00:00:00'來表示沒有值的日期或時(shí)間字段。

要將MySQL設(shè)置為strict mode,請(qǐng)將以下內(nèi)容添加到my.cnf文件中:

[mysqld]
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

請(qǐng)注意,nozeroindate將不會(huì)在MySQL 5.7.4或更高版本中得到支持,因此在使用這些版本的MySQL時(shí),請(qǐng)使用NULL而不是'0000-00-00 00:00:00'。