当前位置: 首页 > 科技观察

MySQLDatetime之时间字段的四舍五入

时间:2023-03-11 22:36:19 科技观察

前言如果我没踩坑,我估计我还不知道时间字段会进行四舍五入。1、后台通过Java代码获取一天中的最大时间,然后存入数据库。数据库表字段格式datetime保留0位。now.with(LocalTime.MAX)是获取今天最大日期的一小行代码。我去数据库看看,好家伙,留到第二天用了。好像是圆的!2执行模拟测试后,查看日志:使用了2021-09-28T23:59:59.999999999,但奇怪的是数据库存储的是2021-09-2900:00:00。直接用SQL试试:这……果然是四舍五入。尝试用MariaDB替换它!dockerpullmariadbdockerrun-d--namemariadb-p33306:33306-e"MYSQL_ROOT_PASSWORD=root"mariadbdockerexec-itmariaadbbashMariaDB直接丢弃多余的数字!3结语MySQLtime如果传入的值超出精度范围,则会向上取整。如果MariaDB时间超出精度范围,则直接丢弃。踩到了一个小坑。最后,让我们硬编码吧!now.with(LocalTime.parse("23:59:59"))本文转载自微信公众号“程序员小航”,可通过以下二维码关注。转载本文请联系程序员小航公众号。