pg小操作

PostgreSQL之日期字段统一加一天

提出问题

如何对数据库某一日期字段这一列统一加一天?已经日期操作的复习????

解决问题

pm_milestone_sign_in是一张数据库表,有个日期字段sign_in_time

公司的测试人员问我,由于急,就随便写了一下,如下:

UPDATE pm_milestone_sign_in  SET sign_in_time = (sign_in_time + interval '1 D')
WHERE ID IN(
select ID from pm_milestone_sign_in psi
)
1234

晚上回来,想了想,脸都红了,就稍微优化下:

UPDATE pm_milestone_sign_in  SET sign_in_time = (sign_in_time + interval '1 D')
WHERE  1 = 1;
12

解释:如果是

加一月,可以写 interval '1 M'
加一年,可以写 interval '1 Y',
12

其他类似,interval 可以不写,其值可以是,具体看下面:

Abbreviation Meaning Y Years M Months (in the date part) W Weeks D Days H Hours M Minutes (in the time part) S Seconds

--数据库、模式、表名 "identities"."Test"."tab_test"

--修改字段名
ALTER TABLE "identities"."Test"."tab_test"  RENAME "u_name"  to realname ;

--添加字段
ALTER TABLE "identities"."Test"."tab_test"  ADD COLUMN updcontent  VARCHAR(50);

--添加字段  给默认值 
ALTER TABLE "identities"."Test"."tab_test"   ADD COLUMN utype  INT DEFAULT(1);
--字段注解
COMMENT ON COLUMN "identities"."Test"."tab_test"."utype"  IS '类型 1为普通 2为高级';

--修改字段类型
ALTER TABLE "identities"."Test"."tab_test" alter  COLUMN  utype  type VARCHAR(50) ;

--删除非空约束
ALTER TABLE "identities"."Test"."tab_test"  ALTER COLUMN realname  drop not    NULL;

--添加主键
ALTER TABLE "identities"."Test"."tab_test"  ADD PRIMARY KEY ("id");