gpt4 book ai didi

java - 获取 java.sql.date 的最大和最小日期

转载 作者:行者123 更新时间:2023-11-29 10:10:37 39 4
gpt4 key购买 nike

我到处都看到我必须使用的日期的最小值和最大值:

Date dateModificationMin = new Date( Long.MIN_VALUE );
Date dateModificationMax = new Date( Long.MAX_VALUE );

但我在我的 java.sql.date 上执行它返回:055-12-02 为最小日期994-08-17 为最大日期

如何获取 java.sql.date 的最大值和最小值?

最佳答案

特定于数据库

答案是特定于数据库的,不能在 Java 或 JDBC 中找到或 java.sql types .可能的日期时间值的限制在数据库之间巨大不同。

例如:

  • > Postgres 9.5 TIMESTAMP WITH TIME ZONE范围从公元前 4713 年到公元 294276 年。
  • > MySQL 5.7 TIMESTAMP type 的范围为 '1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999' UTC。 DATETIME 值的范围是“1000-01-01 00:00:00.000000”到“9999-12-31 23:59:59.999999”,
  • > SQLite has no data types因此,并将日期时间值存储为 ISO 8601字符串(“YYYY-MM-DD HH:MM:SS.SSS”)。因此,如果它仅跟踪年份的 4 位数字(我不知道),那么大概仅限于年份 9999
  • > Firebird seems to have a TIMESTAMP从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为百分之三秒,即 3.33 毫秒。我找不到他们的主要引用页面,也找不到刚刚发布的第 3 版更新。
  • > Microsoft SQL Server datetime2 type 的范围为 0001-01-01 到 9999-12-31 到 1 月 1 日,1 CE 到 9999 年 12 月 31 日,时间从 00:00:00 到 23:59:59.9999999(注意分数的 7 位,比微秒更细但比纳秒更粗)。还有datetime with range从 1753 年 1 月 1 日到 9999 年 12 月 31 日,以及一天中的时间 00:00:00 到 23:59:59.997。

与其确定绝对限制,我建议您选择 future 和过去的任意点,并将它们用作您的限制。远远超出软件和应用程序生命周期中遇到的值(value),但又不至于超出大多数数据库的限制。在您的应用程序中将限制硬编码为常量,例如 Java 中的枚举。

Stack Overflow 上的其他帖子表明,对于查找日期时间值以用作未知或尚未确定的值的占位符(我认为这是问题)。

关于java - 获取 java.sql.date 的最大和最小日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37138076/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com