【问题标题】:How to bring future days to past date and then revert to same old days using postgresql?如何将未来的日子带到过去的日期,然后使用 postgresql 恢复到过去的日子?
【发布时间】:2021-06-08 23:33:30
【问题描述】:

我有一个有 6 个表的数据库。每个表都有一个date 和datetime 列的列表,如下所示

Table 1                Table 2              ....               Table 6

Date_of_birth          Exam_date  exam_datetime               Result_date   Result_datetime

2190-01-13             2192-01-13  2192-01-13 09:00:00        2194-04-13    2194-04-13 07:12:00
2184-05-21             2186-05-21  2186-05-21 07:00:00        2188-02-03    2188-02-03 09:32:00
2181-06-17             2183-06-17  2183-06-17 05:00:00        2185-07-23    2185-07-23 12:40:00

我想做的是将所有这些未来的日子转移回过去的日期(绝对必须小于当前日期),但保持相同的时间顺序。意思是,我们可以看到这个人先出生,然后他参加了考试,最后得到了他的成绩。

此外,我应该能够恢复更改并再次取回未来的日期。

我希望我的输出如下所示

第 1 阶段 - 回到过去(可以是任何一天,但必须是过去并保持时间顺序)

Table 1                Table 2              ....               Table 6

Date_of_birth          Exam_date  exam_datetime               Result_date   Result_datetime

1990-01-13             1992-01-13  1992-01-13 09:00:00        1994-04-13    1994-04-13 07:12:00
1984-05-21             1986-05-21  1986-05-21 07:00:00        1988-02-03    1988-02-03 09:32:00
1981-06-17             1983-06-17  1983-06-17 05:00:00        1985-07-23    1985-07-23 12:40:00

第 2 阶段 - 像以前一样向前移动到未来的日子

Table 1                Table 2              ....               Table 6

Date_of_birth          Exam_date  exam_datetime               Result_date   Result_datetime

2190-01-13             2192-01-13  2192-01-13 09:00:00        2194-04-13    2194-04-13 07:12:00
2184-05-21             2186-05-21  2186-05-21 07:00:00        2188-02-03    2188-02-03 09:32:00
2181-06-17             2183-06-17  2183-06-17 05:00:00        2185-07-23    2185-07-23 12:40:00

【问题讨论】:

  • 你的尝试在哪里?你有 3,257xp,你肯定要先试一试。

标签: sql postgresql date datetime psql


【解决方案1】:

减去两个世纪:

update table1
    set date_of_birth = date_of_birth - interval '200 year';

您可以对所有其他日期执行类似的操作。

【讨论】:

  • 稍后,我可以再次添加200 years。正确的?谢谢您的帮助。赞成
  • @TheGreat 。 . .是的,这应该有效。唯一的细微差别是,如果差异不是闰年,它可能会在闰年关闭。我认为直到 . . . 2400 年 2 月 29 日。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
相关资源
最近更新 更多