我们有一个接受没有时区的时间戳的程序。
当我经过时说 “2023 年 12 月 3 日星期日 11:02:19 GMT”
通过设置日期(java.util.date)从java到Postgresql过程
该过程有一个没有时区的演员时间戳,例如 IN run_date 时间戳,不含时区。
预期日期字段值应为 2023-12-03 11:03:19 但 2023-12-03 11:03:20 存储在数据库中
为什么要添加第二个?
我们有一个使用精确日期时间获取行的逻辑。因此,由于秒数不匹配,不会返回任何行
您存储的 Java 时间戳可能有小数秒,如
2023-04-01 12:30:00.8888
。那么以下事情之一可能会发生:
数据库列被定义为数据类型
timestamp(0)
,因此 PostgreSQL 将值向上舍入
数据库列是正常的
timestamp(6)
,时间戳按原样存储,但您用来可视化数据库内容的程序四舍五入到秒
使用不会撒谎的数据库客户端,例如
psql
,并检查存储的值和表定义。