【发布时间】:2021-06-01 14:40:00
【问题描述】:
我有一个名为 datatable 的 SQL 表。
date source reading tday yday
---------------------------------------------
2021-05-27 x1 x x x
2021-05-27 x2 x x x
2021-05-27 x3 x x x
2021-05-28 x1 x x x
2021-05-28 x2 x x x
2021-05-28 x3 x x x
2021-05-31 x1 x x x
2021-05-31 x2 x x x
2021-05-31 x3 x x x
我想将日期从 2021-05-31 更新为 2021-06-01,我只有 1 个数据库,我担心会弄乱数据,我该怎么做?
应该是这样的
date source reading tday yday
----------------------------------------------
2021-05-27 x1 x x x
2021-05-27 x2 x x x
2021-05-27 x3 x x x
2021-05-28 x1 x x x
2021-05-28 x2 x x x
2021-05-28 x3 x x x
2021-06-01 x1 x x x
2021-06-01 x2 x x x
2021-06-01 x3 x x x
我觉得应该是这样的
UPDATE date
FROM datatable
WHERE date = '2021-05-31' TO '2021-06-01';
或
UPDATE datatable
SET date = '2021-06-01'
WHERE date = '2201-05-31';
日期列是日期时间格式。
编辑。
如何先添加数据,然后删除旧数据?
因此,将 2021-05-31 的数据复制为 2021-06-01,(除日期外,所有其他列都是 2021-05-31 数据的列)
date source reading tday yday
---------------------------------------------
2021-05-27 x1 x x x
2021-05-27 x2 x x x
2021-05-27 x3 x x x
2021-05-28 x1 x x x
2021-05-28 x2 x x x
2021-05-28 x3 x x x
2021-05-31 x1 x x x
2021-05-31 x2 x x x
2021-05-31 x3 x x x
2021-06-01 x1 x x x
2021-06-01 x2 x x x
2021-06-01 x3 x x x
然后删除2021-05-31所在的行,这样我就结束了
为此,我猜查询是:
DELETE FROM datatable
WHERE date = '2021-05-31';
date source reading tday yday
--------------------------------------------
2021-05-27 x1 x x x
2021-05-27 x2 x x x
2021-05-27 x3 x x x
2021-05-28 x1 x x x
2021-05-28 x2 x x x
2021-05-28 x3 x x x
2021-06-01 x1 x x x
2021-06-01 x2 x x x
2021-06-01 x3 x x x
【问题讨论】:
标签: sql postgresql sql-update