4
|
Steven Chong · 技术社区 · 16 年前 |
![]() |
1
1
这个 Answer by Sacre 是正确的,但过时了。现代的方法是使用java.time类。 DR
通过一对
使用对象而不是字符串避免使用字符串在数据库中获取/存储日期时间值。使用日期时间对象作为日期时间值。Java和JDBC对日期时间对象有着丰富的支持。 使用JavaTimes
这个
但是
这里的关键问题被你的问题忽略了:时区。一 时区对于确定日期至关重要 . 在任何一个特定的时刻,日期在全球各地各不相同。例如,在 Paris France 是新的一天,而昨天仍然是 Montréal Québec .
指定一个
proper time zone name
格式为
关于数据库中的时区
如果存储为分区值,则需要确定所需时区中日期的开始和结束时刻,然后将该对点转换为UTC值,并查询数据库中该对UTC值。 通常,定义时间跨度的日期时间工作的最佳实践(如此处所需的一天的持续时间)是使用半开放方法,其中跨度的开始是 包容的 当结尾是 排他性 .所以一天从一天中的第一个时刻开始,一直到但不包括 下列的 一天。 不要假定一天的第一个时刻是00:00:00。异常情况,例如夏令时(DST)意味着一天可能从01:00:00开始。让java.time确定一天中的第一个时刻。
还要记住,从开始到停止的时间间隔不一定是24小时。异常,如DST,意味着一天可能运行23或25小时,或其他一些时间长度。
通过提取将其转换为UTC
要执行SQL查询,请执行
不
使用
指定您的一对
提要栏:根据SQL规范的承诺,在所有SQL标识符后面加上一个下划线,以避免与1000个保留字发生任何名称冲突。
注意我们是怎么打电话的
如果你
JDBC driver
还不支持
JDBC 4.2
或者稍后,您必须返回到使用传统java.sql类型。在这种情况下,我们需要
关于JavaTimes
这个
java.time
框架是在Java 8和之后构建的。这些阶级取代了麻烦的旧阶级。
legacy
日期时间类,如
这个 Joda-Time 项目,现在 maintenance mode ,建议迁移到 Java.时间 类。 要了解更多信息,请参阅 Oracle Tutorial . 以及搜索堆栈溢出以获得许多示例和解释。规格为 JSR 310 . 在哪里获取java.time类?
这个
ThreeTen-Extra
Project使用其他类扩展java.time。这个项目是将来可能添加到java.time的一个试验场。您可以在这里找到一些有用的类,例如
|
![]() |
2
5
像这样:
(从内存中,所以语法可能不太正确) 但是,您必须将java.util.date对象转换为java.sql.date对象。 这相当简单:
在哪里?
|
![]() |
blogger13 · 视频租赁店数据库的规范化 5 月前 |
![]() |
ì¤ì¤í · 为什么LEFT INNER JOIN被弃用? 6 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 7 月前 |
|
Grenish Rai · Firestore错误“用户文档不存在” 10 月前 |
![]() |
Saijo-Shi · PLpgsql中的更新触发器 10 月前 |
![]() |
Dante · Django::配置不当:池不支持持久连接 10 月前 |
![]() |
YouLocalRUser · 删除重复行,保留第一行 11 月前 |