首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据时间间隔使用sysdate更新日期列

根据时间间隔使用sysdate更新日期列
EN

Stack Overflow用户
提问于 2020-08-04 00:21:25
回答 1查看 49关注 0票数 0

我需要创建一个plsql脚本,它必须在执行时根据人口间隔(每小时、每天、每周、每月)用sysdate更新population_date列。

例如,如果是每周填充间隔,则必须按如下方式更新population_date列中的现有日期:

Rec_sid (现有日期) Population_date

1 2020年1月20日sysdate(2020年8月3日)

2 2020年1月20日sysdate (2020年8月3日)

3 2020年1月19日sysdate-1(2020年8月2日)

4 2020年1月19日sysdate-1(2020年8月2日)

5 2020年1月18日sysdate-2(2020年8月1日)

6 2020年1月18日sysdate-2(2020年8月1日)

7 2020年1月17日sysdate-3 (2020年7月31日)

8 2020年1月17日sysdate-3(2020年7月31日)

9 2020年1月17日sysdate-3(2020年7月31日)

10 2020年1月16日sysdate-4(2020年7月30日)

11 2020年1月16日(sysdate-4)2020年7月30日)

12 2020年1月15日sysdate-5(2020年7月29日)

13 2020年1月15日sysdate-5(2020年7月29日)

14 2020年1月14日sysdate-6(2020年7月28日)

该列存在于100个具有不同结构的表中,并且population_date列必须单独使用基于时间间隔的当前日期进行更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-04 00:33:40

如果我没有理解错的话,您希望最新的日期是在一周的同一天,也就是今天或之前。这个逻辑应该是:

代码语言:javascript
复制
population_date + floor( (sysdate - population_date) / 7) * 7

您可以将其放入update中,格式如下:

代码语言:javascript
复制
update t
    set population_date = population_date + floor( (sysdate - population_date) / 7) * 7;

我建议您首先运行一个select来验证结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63233189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档