SET variable { TO | = } { value | 'value' | DEFAULT } SET TIME ZONE { 'timezone' | LOCAL | DEFAULT }
SET 命令改变运行时配置参数. 可以改变的参数是:
设置多字节客户端编码。声明的编码方式必须为后端支持。
这个特性只有在制作 Postgres 的配置阶段声明了多字节(--enable-multibyte)支持后才生效。
设置日期/时间表示风格。有两个独立的配置需要设置: 缺省的日期/时间输出和语意含糊的输入的解释.
下面是日期/时间输出风格:
使用 ISO 8601-风格的日期和时间(YYYY-MM-DD HH:MM:SS)这是缺省设置.
使用 Oracle/Ingres-风格的日期和时间.请注意这个风格 和 SQL 没有任何关系(SQL要求使用ISO 8601风格),这个 命名选项是历史原因.
使用传统 Postgres格式
使用 dd.mm.yyyy 作为数字日期表达式.
下面的两个选项决定 “SQL” 和 “Postgres” 两个选项的输出格式的子风格,以及优先的含糊日期输入的解释.
使用 dd/mm/yyyy 作为数字化的日期表现形式.
使用 mm/dd/yyyy 作为数字日期表现形式.
SET DATESTYLE 的值可以是来自第一列中的一个(输出风格), 或者是来自第二列中的一个(子风格), 或者来自上面两个列表,并且用逗号分隔两个参数.
日期格式初始化可以用下面方法初始化:
设置 PGDATESTYLE 环境变量. 如果一个基于 libpq 的客户端的环境里设置了 PGDATESTYLE, libpq 将在联接启动时自动把DATESTYLE 设置成为 PGDATESTYLE 的值。 |
用-o -e参数运行 postmaster可以把日期设置成 European. |
DateStyle 选项只是为了移植应用用的. 要格式化你的日期/时间值来做选择,请用 to_char 家族的函数.
为随机数生成器设置内部种子.
被random范围函数使用的种子的值. 典型的值是介于0 和 1之间的浮点数, 这个数随后乘以 2^31-1.如果使用了超出范围的数值, 生成的积自动溢出.
种子还可以通过调用 setseed SQL 函数设置:
SELECT setseed(value);
设置多字节服务器端编码方式.
这个特性只有在制作 Postgres 的配置阶段声明了多字节支持后才生效。
用于时区的可能值取决于你的操作系统.例如,在Linux上 /usr/share/zoneinfo 包含时区的数据库.
下面是一些时区的有效值:
把时区值设为 California.
把时区值设为 Portugal.
把时区值设为 Italy
把时区值设为你的本地时区(你的操作系统确省的那个).
如果声明了一个非法的时区,时区就设为GMT(在大多数系统上如此).
如果一个基于 libpq 的客户端的环境里设置了 PGTZ, libpq 将在联接启动时自动把 TIMEZONE 设置成为 PGTZ 的值。
一个扩展的其它运行时参数列表可以在 管理员手册里找到.
使用 SHOW 来显示当前 的参数设置.
成功的返回信息.
你试图设置的参数不存在.
为了访问一些设置,你必须是超级用户.
有些参数在服务器启动后就无法更改了.
把日期时间风格设置为传统的Postgres风格,同时还有Europen(欧洲)风格:
SET DATESTYLE TO Postgres,European;把时区设置为 Berkeley, California, 使用双引号保存时区声明里大写字符的属性 (注意这里的日期/时间格式是 ISO):
SET TIME ZONE "PST8PDT"; SELECT CURRENT_TIMESTAMP AS today; today ------------------------ 1998-03-31 07:41:21-08设置时区为 Italy(注意这里要求的单或者双引号来操作特殊的字符):
SET TIME ZONE 'Europe/Rome'; SELECT CURRENT_TIMESTAMP AS today; today ------------------------ 1998-03-31 17:41:31+02