字符串或数字中应该包含多少位数字,以便MySQL可以将其指定为日期值?
在将年份视为4位数字值时,MySQL至少需要在字符串或数字中使用8位数字才能将其指定为日期值。如果我们还想存储微秒,则该值最多可以为20位。
mysql> Select TIMESTAMP('20171022040536.100000'); +-----------------------------------+ | TIMESTAMP('20171022040536100000') | +-----------------------------------+ | 2017-10-22 04:05:36.100000 | +-----------------------------------+ 1 row in set, 1 warning (0.00 sec)
上面的查询使用TIMESTAMP值的20位数字字符串。后6位数字表示微秒。
mysql> Select TIMESTAMP(20171022); +---------------------+ | TIMESTAMP(20171022) | +---------------------+ | 2017-10-22 00:00:00 | +---------------------+ 1 row in set (0.00 sec)
上面的查询使用TIMESTAMP值的8位数字字符串。
mysql> Select TIMESTAMP(201710); +-------------------+ | TIMESTAMP(201710) | +-------------------+ | NULL | +-------------------+ 1 row in set, 1 warning (0.00 sec)
上面的查询返回NULL,因为一位数字小于8。
相反,当将年份视为2位数字值时,MySQL要求字符串或数字中至少6位数字才能将其指定为日期值。如果我们还想存储微秒,则该值最多可以为18位。
mysql> Select TIMESTAMP(171022); +---------------------+ | TIMESTAMP(171022) | +---------------------+ | 2017-10-22 00:00:00 | +---------------------+ 1 row in set (0.00 sec)
上面的查询使用TIMESTAMP值的6位数字字符串。
mysql> Select TIMESTAMP('171022040536.200000'); +----------------------------------+ | TIMESTAMP('171022040536.200000') | +----------------------------------+ | 2017-10-22 04:05:36.200000 | +----------------------------------+ 1 row in set (0.00 sec)
上面的查询使用TIMESTAMP值的18位数字字符串。点(。)后的最后6位数字为微秒。
mysql> Select TIMESTAMP(1710); +-----------------+ | TIMESTAMP(1710) | +-----------------+ | NULL | +-----------------+ 1 row in set, 1 warning (0.00 sec)
上面的查询返回NULL,因为位数小于6。
热门文章
- 宠物批发渠道策划方案怎么写(宠物批发货源)
- 1月9日 | Surfboard节点订阅每天更新20.2M/S免费节点订阅链接,Surfboard免费机场
- 2022国考公务员报名入口官网(国考公务员2021年报名官网)
- 3月4日 | Surfboard节点订阅每天更新21.9M/S免费节点订阅链接,Surfboard免费机场
- 养猫要***吗打什么(养猫需要打什么针吗)
- 领养协议书范本宠物简易(领养宠物协议怎么写)
- 女孩十大最好专业初中学历(女生最吃香的十大专业初中学历)
- 1970年6月27日农历是多少(1970年阳历6月26号阴历是多少)
- 1月4日 | Surfboard节点订阅每天更新23M/S免费节点订阅链接,Surfboard免费机场
- 高并发下redis缓存常见问题