java - 表示 RDBMS 中另一个日期之前或之后一定天数的日期

标签 java sql sql-server database-design date

是否有一种标准方法来表示 RDBMS 中另一个日期之前或之后一定天数的日期?

例如,假设日期 1 是 2005 年 10 月 30 日,显然可以将其存储在 RDB 中的日期时间列或类似列中。

但是假设日期 2 是“日期 1 之后 3 天”,假设日期 1 可以在未来随时更改,这意味着日期 2 必须以某种方式自动更新,那么您如何在 RDB 中表示它?

谢谢!!

最佳答案

给出2项信息,你总能算出第三项

  • 开始日期 + 偏移量 = 另一个日期
  • 另一个日期 - 开始日期 = 偏移量

在本例中,您似乎有 2 个已知事实

  • 开始日期
  • 偏移量

存储这些内容并使“另一个日期”成为带有 DATEADD 的计算列

CREATE TABLE whatever (
...
StartDate date NOT NULL,
DayOffset smallint NOT NULL,
AnotherDate AS DATEADD (day, DayOffset, StartDate),
...

这样,当 2 个输入值发生变化时,AnotherDate 将由数据库引擎维护

如果这 3 个因素中的任何一个可以改变,那么您通常必须使用触发器...

关于java - 表示 RDBMS 中另一个日期之前或之后一定天数的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919228/

相关文章:

java - Flurry Android 分析错误

java - MVC : how should I switch between different datasets - update or replace?

sql - 前几行数组的累积数组?

仅连续 3 个月的 SQL 记录

sql - 在一个表中有不同用户的记录 - SQL Server

sql - 如何在动态查询中使用表变量

c# - 在数据表的特定列下添加一行

java - 如何在 Spring RestController 中下载 excel 文件

Java Scanner hasNext() 跳过空行

sql - 如何在 SQL 中为结果集中的每一行选择额外的行?