在本地设置中,我使用的是一个简单的H2数据库。“宿主”解决方案将有另一个(类似但不相同)数据库。
我需要将最大可能的日期插入到DateTime列中。我试着用
Instant.MAX然而,这将导致列中的-169104626-12-11 20:08:15.99999999。
关于如何插入最大可能的日期,是否有可靠的选项?
发布于 2016-12-23 23:31:43
最大日期(独立于数据库)
没有这样的事。尝试设置最大日期完全取决于数据库。
日期时间处理的主题几乎没有被SQL标准触及(不幸的是)。日期时间的数据类型和行为在不同的数据库中差异很大.不同数据库之间的最小值和最大值可能会有根本的不同。即使在单个数据库中,各种日期-时间数据类型的最小/最大范围也可能有很大的不同。例如,一些数据库具有旧的专有日期时间类型,以及行为非常不同的更新、更常见或标准的类型。
Java本身有非常不同的日期时间类型集:
它们的最小/最大值是不同的。
关于如何插入最大可能的日期,是否有可靠的选项?
不是的。
如果您试图使用最大值作为某种标志,例如“未定的未来日期”以避免空值,则应该选择一些任意日期,以便将来超过任何合法值,但不超过您可能使用的任何数据库的限制。在Java代码和数据库中为这个值定义一个常量,并彻底记录。
我建议坚持四位数的年份,以避免各种混乱和问题,如打破报告&GUI超过了字段的显示宽度。有点像9999。或者可能是2666,因为它对人类读者来说是如此明显,因为恶名为666。
搜索堆栈溢出的单词,如Java、min和max,以获得更多讨论。比如这,这,这,这,这。这个问题基本上是其他问题的重复。
https://stackoverflow.com/questions/41301892
复制相似问题