DB/Rest 支持的 Java 日历/日期最小值

标签 java sql date calendar hsqldb

我正在使用 Spring Boot 和 HSQLDB 文件, 当我使用时:

calendar.setTimeInMillis(-9223372036854775808L);
calendar.setTime(new Date(Long.MIN_VALUE));

并存储模型,

在我调用休息客户端后,我得到无效日期,当我检查它时,它返回一些正值而不是负值:|我应该使用什么作为 min_Value。

我认为这可能是SQL问题,我将临时变量类型从时间跨度更改为日期,但没有再次工作,我不再确定这个问题是什么情况,以及我应该使用什么nuber,每个人都在谈论关于最小值,有人谈到-8.......L左右,这在JS中也可以工作,但在这里也不起作用:|

最佳答案

避免古老的日期时间值

不使用该最小数字作为日期值的原因有很多。正如所评论的,标准 SQL 不允许如此古老的日期。据我所知,没有数据库实现支持该值。使用日期时间作为历史值充满了问题和问题,而且是不明智的。

使用纪元作为标志值

如果您正在寻找任意值用作标志,例如“无预期值”,同时避免使用空值,那么我建议使用 Java 和 Unix epoch 1970 年的第一个时刻 UTC 。如果您知道您的系统永远不会将任何早前的日期时间存储为有效值,那么这将很有效。 1970-01-01T00:00:00Z 很容易被许多程序员、DBA 和系统管理员识别为常见纪元,因此可能是一个特殊值。

java.time

避免使用DateCalendar 类。这些麻烦的类及其 sibling 现在已被遗留下来,并被 java.time 类取代。

这些类包含该纪元值的常量:Instant.EPOCH

类似问题:Minimum date in Java

关于DB/Rest 支持的 Java 日历/日期最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841551/

相关文章:

mysql预订预订查询

javascript - JSF:如何实现类似 eclipse 的控制台?

sql - 生成数据库指标的简单查询?

java - 从sql数据库中删除行

sql - 选择 "edit top ' N' 行时更改顺序”

sql - 如何在 Sequelize 的 'BelongsTo' 关联中设置外键的默认值或选项?

r - 访问一个月的第一个工作日

javascript - toLocaleDateString() 不返回 dd/mm/yyyy 格式

java - 在 OpenCV 中将 BufferedImage 转换为 Mat

twitter - 用于提取特别感兴趣的推文的 Java 库或 API