| hank=> select * from tb2;c1 | c2  |       c3
 ----+-------+----------------------------
 1 | hank | 2018-02-06 10:08:00.787503
 2 | dazui | 2018-02-06 10:08:08.542481
 3 | wahah | 2018-02-06 10:08:15.468527
 4 | aaaaa | 2018-02-06 10:18:39.289523
 SQL文本如下 cat hank.sqlselect * from tb2 where c2=:name and c3>=:time;
 通过psql查看 psql -v name="'hank'" -v time="'2018-02-06 10:08:00'" -f hank.sqlc1 | c2 |       c3
 ----+------+----------------------------
 1 | hank | 2018-02-06 10:08:00.787503
 或者 psql -v name="'hank'" -v time="'2018-02-06 10:08:00'" -c 'i hank.sql'c1 | c2 |       c3
 ----+------+----------------------------
 1 | hank | 2018-02-06 10:08:00.787503
 效果一样 2.set使用变量 hank=> set name hankhank=> set time '2018-02-06 10:09:00'
 hank=> select * from tb2 where c2=:'name' and c3>=:'time';
 c1 | c2 |       c3
 ----+------+----------------------------
 1 | hank | 2018-02-06 10:08:00.787503
 3.通过定义参数实现 设置一个session级别的参数,通过current_setting取值 hank=> set session "asasd.time" to "2018-02-06 10:09:00";SET
 hank=> select * from tb2 where c3 >= current_setting('asasd.time')::timestamp;
 c1 | c2  |       c3
 ----+-------+----------------------------
 4 | aaaaa | 2018-02-06 10:18:39.289523
 (1 row)
 补充:postgresql存储函数/存储过程用sql语句来给变量赋值 --定义变量a numeric;
 方式一: 1select sqla into a from table1 where b = '1' ; --这是sql语句赋值 方式二: sql1:= 'select a from table1 where b = ' '1' ' ';execute sql1 into a; --这是执行存储函数赋值
 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |