
虽然将年份视为 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)
上面的查询采用 20 位数字字符串作为 TIMESTAMP 值。最后 6 位数字表示微秒。
mysql> Select TIMESTAMP(20171022);+---------------------+| TIMESTAMP(20171022) |+---------------------+| 2017-10-22 00:00:00 |+---------------------+1 row in set (0.00 sec)
上面的查询采用 8 位数字字符串作为 TIMESTAMP 值。
mysql> Select TIMESTAMP(201710);+-------------------+| TIMESTAMP(201710) |+-------------------+| NULL |+-------------------+1 row in set, 1 warning (0.00 sec)
上面的查询返回 NULL,因为数字的位数小于 8。
相反,当将年份视为 2 位数字时,字符串或数字中至少需要 6 位数字MySQL 将其指定为日期值。在这种情况下,如果我们还想存储微秒,那么该值最多可以为 18 位数字。
怪兽AI数字人
数字人短视频创作,数字人直播,实时驱动数字人
44 查看详情
mysql> Select TIMESTAMP(171022);+---------------------+| TIMESTAMP(171022) |+---------------------+| 2017-10-22 00:00:00 |+---------------------+1 row in set (0.00 sec)
上面的查询采用 6 位数字字符串作为 TIMESTAMP 值。
mysql> Select TIMESTAMP('171022040536.200000');+----------------------------------+| TIMESTAMP('171022040536.200000') |+----------------------------------+| 2017-10-22 04:05:36.200000 |+----------------------------------+1 row in set (0.00 sec)
上面的查询采用 18 位数字字符串作为 TIMESTAMP 值。点 (.) 后的最后 6 位数字表示微秒。
mysql> Select TIMESTAMP(1710);+-----------------+| TIMESTAMP(1710) |+-----------------+| NULL |+-----------------+1 row in set, 1 warning (0.00 sec)
上面的查询返回 NULL,因为位数小于 6。
以上就是字符串或数字中应该有多少位数字才能被 MySQL 指定为日期值?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/236568.html
微信扫一扫
支付宝扫一扫