我需要创建一个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列必须单独使用基于时间间隔的当前日期进行更新。
发布于 2020-08-04 00:33:40
如果我没有理解错的话,您希望最新的日期是在一周的同一天,也就是今天或之前。这个逻辑应该是:
population_date + floor( (sysdate - population_date) / 7) * 7您可以将其放入update中,格式如下:
update t
set population_date = population_date + floor( (sysdate - population_date) / 7) * 7;我建议您首先运行一个select来验证结果。
https://stackoverflow.com/questions/63233189
复制相似问题