sql - 如何将未来的日子带到过去的日期,然后使用 postgresql 恢复到过去的日子?
问题描述
我有一个有 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
解决方案
减去两个世纪:
update table1
set date_of_birth = date_of_birth - interval '200 year';
您可以对所有其他日期执行类似的操作。
推荐阅读
- jquery - 点击隐藏图片
- swiftui - 如何通过动态调用替换@FetchRequest
- neural-network - 我应该使用哪种神经网络来获取概率?
- c++ - 将 Unreal Engine 4.24.2 与 VS2019 或 VSCode 一起使用时,如何修复这些错误的 Intellisense 错误?
- unity3d - VS Code 中的 Omnisharp 会产生很多关于 Unity 项目的警告。为什么?
- python - PermissionError:[Errno 13] 权限被拒绝:'voice.mp3'
- javascript - 浮点数 - 没有算术运算和精度错误
- node.js - 使用承诺重构代码以读取文件并将它们转换为 json
- c# - 是什么让这个查询在 EF Core 3.x 中无法翻译?
- shopify - 更改 Shopify 上博客的 URL