雖然將年份視為 4 位數(shù)字值,但 MySQL 需要字符串或數(shù)字中至少有 8 位數(shù)字才能將其指定為日期值。在這種情況下,如果我們還想存儲(chǔ)微秒,那么該值最多可以為 20 位數(shù)字。
mysql> Select TIMESTAMP('20171022040536.100000'); +-----------------------------------+ | TIMESTAMP('20171022040536100000') | +-----------------------------------+ | 2017-10-22 04:05:36.100000 | +-----------------------------------+ 1 row in set, 1 warning (0.00 sec)
登錄后復(fù)制
上面的查詢(xún)采用 20 位數(shù)字字符串作為 TIMESTAMP 值。最后 6 位數(shù)字表示微秒。
mysql> Select TIMESTAMP(20171022); +---------------------+ | TIMESTAMP(20171022) | +---------------------+ | 2017-10-22 00:00:00 | +---------------------+ 1 row in set (0.00 sec)
登錄后復(fù)制
上面的查詢(xún)采用 8 位數(shù)字字符串作為 TIMESTAMP 值。
mysql> Select TIMESTAMP(201710); +-------------------+ | TIMESTAMP(201710) | +-------------------+ | NULL | +-------------------+ 1 row in set, 1 warning (0.00 sec)
登錄后復(fù)制
上面的查詢(xún)返回 NULL,因?yàn)閿?shù)字的位數(shù)小于 8。
相反,當(dāng)將年份視為 2 位數(shù)字時(shí),字符串或數(shù)字中至少需要 6 位數(shù)字MySQL 將其指定為日期值。在這種情況下,如果我們還想存儲(chǔ)微秒,那么該值最多可以為 18 位數(shù)字。
mysql> Select TIMESTAMP(171022); +---------------------+ | TIMESTAMP(171022) | +---------------------+ | 2017-10-22 00:00:00 | +---------------------+ 1 row in set (0.00 sec)
登錄后復(fù)制
上面的查詢(xún)采用 6 位數(shù)字字符串作為 TIMESTAMP 值。
mysql> Select TIMESTAMP('171022040536.200000'); +----------------------------------+ | TIMESTAMP('171022040536.200000') | +----------------------------------+ | 2017-10-22 04:05:36.200000 | +----------------------------------+ 1 row in set (0.00 sec)
登錄后復(fù)制
上面的查詢(xún)采用 18 位數(shù)字字符串作為 TIMESTAMP 值。點(diǎn) (.) 后的最后 6 位數(shù)字表示微秒。
mysql> Select TIMESTAMP(1710); +-----------------+ | TIMESTAMP(1710) | +-----------------+ | NULL | +-----------------+ 1 row in set, 1 warning (0.00 sec)
登錄后復(fù)制
上面的查詢(xún)返回 NULL,因?yàn)槲粩?shù)小于 6。
以上就是字符串或數(shù)字中應(yīng)該有多少位數(shù)字才能被 MySQL 指定為日期值?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!