PostgreSQL基本结构——函数

举报
xcc-2022 发表于 2022/07/04 20:30:52 2022/07/04
【摘要】 1.数学操作符操作符描述例子结果/除(整数/整数结果只保留整数位)31/311%模6 % 41^幂2.0 ^ 3.18|/平方根|/ 25.15||/立方根||/ 27.13!阶乘6 !120!!阶乘!! 6120@绝对值  &按位AND92 & 1511|按位OR33 | 335#按位XOR18 # 520~按位NOT~2-2<< 按位左移2 << 416>> 按位右移9 >> 222.位...

1.数学操作符

操作符

描述

例子

结果

/

除(整数/整数结果只保留整数位)

31/31

1

%

6 % 4

1

^

2.0 ^ 3.1

8

|/

平方根

|/ 25.1

5

||/

立方根

||/ 27.1

3

!

阶乘

6 !

120

!!

阶乘

!! 6

120

@

绝对值

 

 

&

按位AND

92 & 15

11

|

按位OR

33 | 3

35

#

按位XOR

18 # 5

20

~

按位NOT

~2

-2

<< 

按位左移

2 << 4

16

>> 

按位右移

9 >> 2

2

2.位串操作符

||

连接

B'10001' || B'012'

10001011

&

按位AND

B'10001' & B'01102'

1

|

按位OR

B'10001' | B'01102'

11101

#

按位XOR

B'10001' # B'01102'

11100

~

按位NOT

~ B'10002'

1110

<< 

按位左移

B'10001' << 4

1000

>> 

按位右移

B'10001' >> 3

100

3.数学函数

abs(x)

绝对值

abs(-17.4)

17.4

cbrt(double)

立方根

cbrt(27.0)

3

ceil(double/numeric)

不小于参数的最小的整数

ceil(-42.8)

-42

degrees(double) 

把弧度转为角度

degrees(0.5)

28.64788976

exp(double/numeric)

自然指数

exp(1.0)

2.718281828

floor(double/numeric)

不大于参数的最大整数

floor(-42.8)

-43

ln(double/numeric)

自然对数

ln(2.0)

0.693147181

log(double/numeric)

10为底的对数

log(100.0)

2

log(b numeric,x numeric)

numeric指定底数的对数

log(2.0, 64.0)

6

mod(y, x)

取余数

mod(9,4)

1

pi() 

"π"常量

pi() 

3.141592654

power(a double, b double)

求a的b次幂

power(9.0, 3.0)

729

power(a numeric, b numeric)

求a的b次幂

power(9.0, 3.0)

729

radians(double)

把角度转为弧度

radians(45.0)

0.785398163

random()

0.0到1.0之间的随机数值

random()

 

round(double/numeric)

圆整为最接近的整数

round(42.4)

42

round(v numeric, s int)

圆整为s位小数数字

round(42.438,2)

42.44

sign(double/numeric)

参数的符号(-1,0,+1) 

sign(-8.4)

-1

sqrt(double/numeric)

平方根

sqrt(2.0)

1.414213562

trunc(double/numeric)

截断(向零靠近)

trunc(42.8)

42

trunc(v numeric, s int)

截断为s小数位置的数字

trunc(42.438,2)

42.43

acos(x)

反余弦

 

 

asin(x)

反正弦

 

 

atan(x)

反正切

 

 

atan2(y, x)

返回弧度角,X轴与(x,y)组成的角

 

 

cos(x)

余弦

 

 

cot(x)

余切

 

 

sin(x)

正弦

 

 

tan(x)

正切

 

 

4.字符串函数

string || string

字串连接

'Post' || 'greSQL'

PostgreSQL

[char_/octet_]length(串)

求字符串里字符的个数,三种格式

 

 

array_agg(表达式)

把一列换成一行

 

 

ascii(text)

参数第一个字符的ASCII码

ascii('x')

120

ASCII(字符串)

返回最左边字符的ASCII码

 

 

bit_length(string)

字串里二进制位的个数

bit_length('jose')

32

btrim(string text [, characters text])

从string开头和结尾删除只包含在characters里(缺省是空白)的字符的最长字串

btrim('xyxtrimyyx','xy')

trim

char_length(string)

字串中的字符个数

char_length('jose')

4

chr(int)

给出ASCII码的字符

chr(65)

A

concat(串1,串2…)

合并字符串

 

 

convert(string text, [src_encoding name,] dest_encoding name)

把字串转换为dest_encoding

convert( 'text_in_utf8', 'UTF8', 'LATIN1')

以ISO 8859-1编码表示的text_in_utf8

convert(string using conversion_name)

使用指定的转换名字改变编码。

convert('PostgreSQL' using iso_8859_1_to_utf8)

'PostgreSQL'

format

格式化

 

 

initcap(text)

把每个单词的第一个子母转为大写,其它的保留小写。单词是一系列字母数字组成的字符,用非字母数字分隔。

initcap('hi thomas')

Hi Thomas

left/ right(串,整数)

取字符串的左边/右边整数位

 

 

length(string text)

string中字符的数目

length('jose')

4

lower(string)

把字串转化为小写

lower('TOM')

tom

lpad(string text, length int [, fill text])

通过填充字符fill(缺省时为空白),把string填充为长度length。如果string已经比length长则将其截断(在右边)。

lpad('hi', 5, 'xy')

xyxhi

ltrim(string text [, characters text])

从字串string的开头删除只包含characters(缺省是一个空白)的最长的字串。

ltrim('zzzytrim','xyz')

trim

md5(string text)

计算给出string的MD5散列,以十六进制返回结果。

md5('abc')

 

octet_length(string)

字串中的字节数

octet_length('jose')

4

overlay(string placing string from int [for int])

替换子字串

overlay('Txxxxas' placing 'hom' from 2 for 4)

Thomas

position(substring in string)

指定的子字串的位置

position('om' in 'Thomas')

3

repeat(string text, number int)

重复string number次。

repeat('Pg', 4)

PgPgPgPg

replace(string text, from text, to text)

把字串string里出现地所有子字串from替换成子字串to。

replace('abcdefabcdef', 'cd', 'XX')

abXXefabXXef

reverse(串)

把字符串转置

 

 

rpad(string text, length int [, fill text])

通过填充字符fill(缺省时为空白),把string填充为长度length。如果string已经比length长则将其截断。

rpad('hi', 5, 'xy')

hixyx

rtrim(string text [, character text])

从字串string的结尾删除只包含character(缺省是个空白)的最长的字

rtrim('trimxxxx','x')

trim

split_part(string text, delimiter text, field int)

根据delimiter分隔string返回生成的第field个子字串(1 Base)。

split_part('abc~@~def~@~ghi', '~@~', 2)

def

strpos(string, substring)

声明的子字串的位置。

strpos('high','ig')

2

substr(string, from [, count])

抽取子字串。

substr('alphabet', 3, 2)

ph

substring(string [from int] [for int])

抽取子字串

substring('Thomas' from 2 for 3)

hom

substring(string from pattern for escape)

抽取匹配SQL正则表达式的子字串

substring('Thomas' from '%#"o_a#"_' for '#')

oma

substring(string from pattern)

抽取匹配 POSIX 正则表达式的子字串

substring('Thomas' from '...$')

mas

to_ascii(text [, encoding])

把text从其它编码转换为ASCII。

to_ascii('Karel')

Karel

to_hex(number int/bigint)

把number转换成其对应地十六进制表现形式。

to_hex(9223372036854775807)

7fffffffffffffff

translate(string text, from text, to text)

把在string中包含的任何匹配from中的字符的字符转化为对应的在to中的字符。

translate('12345', '14', 'ax')

a23x5

trim([leading | trailing | both] [characters] from string)

从字串string的开头/结尾/两边/ 删除只包含characters(缺省是一个空白)的最长的字串

trim(both 'x' from 'xTomxx')

Tom

upper(string)

把字串转化为大写。

upper('tom')

TOM

5.数据类型格式化函数

to_char(timestamp, text)

把时间戳转换成字串

to_char(current_timestamp, 'HH12:MI:SS')

 

to_char(interval, text)

把时间间隔转为字串

to_char(interval '15h 2m 12s', 'HH24:MI:SS')

 

to_char(int, text)

把整数转换成字串

to_char(125, '999')

 

to_char(double precision, text)

把实数/双精度数转换成字串

to_char(125.8::real, '999D9')

 

to_char(numeric, text)

把numeric转换成字串

to_char(-125.8, '999D99S')

 

to_date(text, text)

把字串转换成日期

to_date('05 Dec 2000', 'DD Mon YYYY')

 

to_timestamp(text, text)

把字串转换成时间戳

to_timestamp('05 Dec 2000', 'DD Mon YYYY')

 

to_timestamp(double)

把UNIX纪元转换成时间戳

to_timestamp(200120400)

 

to_number(text, text)

把字串转换成numeric

to_number('12,454.8-', '99G999D9S')

 

6.日期/时间格式化

 

一天的小时数(01-12)

 

 

 

一天的小时数(01-12)

 

 

 

一天的小时数(00-23)

 

 

 

分钟(00-59)

 

 

 

秒(00-59)

 

 

 

毫秒(000-999)

 

 

 

微秒(000000-999999)

 

 

 

正午标识(大写)

 

 

 

带逗号的年(4和更多位)

 

 

 

年(4和更多位)

 

 

 

年的后三位

 

 

 

年的后两位

 

 

 

年的最后一位

 

 

 

全长大写月份名(空白填充为9字符)

 

 

 

全长混合大小写月份名(空白填充为9字符)

 

全长小写月份名(空白填充为9字符)

 

 

 

大写缩写月份名(3字符)

 

 

 

缩写混合大小写月份名(3字符)

 

 

 

小写缩写月份名(3字符)

 

 

 

月份号(01-12)

 

 

 

全长大写日期名(空白填充为9字符)

 

 

 

全长混合大小写日期名(空白填充为9字符)

 

全长小写日期名(空白填充为9字符)

 

 

 

缩写大写日期名(3字符)

 

 

 

缩写混合大小写日期名(3字符)

 

 

 

缩写小写日期名(3字符)

 

 

 

一年里的日子(001-366)

 

 

 

一个月里的日子(01-31)

 

 

 

一周里的日子(1-7;周日是1)

 

 

 

一个月里的周数(1-5)(第一周从该月第一天开始)

 

一年里的周数(1-53)(第一周从该年的第一天开始)

7.数值格式化

 

带有指定数值位数的值

 

 

 

带前导零的值

 

 

 

小数点

 

 

 

分组(千)分隔符

 

 

 

尖括号内负值

 

 

 

带符号的数值

 

 

 

货币符号

 

 

 

小数点

 

 

 

分组分隔符

 

 

 

在指明的位置的负号(如果数字 < 1)

 

 

 

在指明的位置的正号(如果数字 > 1)

 

 

 

在指明的位置的正/负号

 

 

8.日期/时间操作符

 

date '2001-09-28' + integer '8'

date '2001-10-06'

 

 

date '2001-09-28' + interval '2 hour'

timestamp '2001-09-28 01:01'

 

 

date '2001-09-28' + time '03:01'

timestamp '2001-09-28 03:01'

 

 

interval '1 day' + interval '2 hour'

interval '1 day 01:01'

 

 

timestamp '2001-09-28 01:00' + interval '24 hours'

timestamp '2001-09-29 00:01'

 

 

time '01:00' + interval '4 hours'

time '04:01'

 

 

- interval '24 hours'

interval '-23:01'

 

 

date '2001-10-01' - date '2001-09-29'

integer '4'

 

 

date '2001-10-01' - integer '8'

date '2001-09-25'

 

 

date '2001-09-28' - interval '2 hour'

timestamp '2001-09-27 23:01'

 

 

time '05:00' - time '03:01'

interval '02:01'

 

 

time '05:00' - interval '3 hours'

time '03:01'

 

 

timestamp '2001-09-28 23:00' - interval '24 hours'

timestamp '2001-09-28 00:01'

 

 

interval '1 day' - interval '2 hour'

interval '23:01'

 

 

timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:01'

interval '1 day 15:01'

 

 

interval '1 hour' * double precision '3.6'

interval '03:31'

 

 

interval '1 hour' / double precision '1.6'

interval '00:41'

 

9.日期/时间函数

age(timestamp, timestamp)

减去参数,生成一个使用年、月的"符号化"的结果

age('2001-04-10', timestamp '1957-06-13')

43 years 9 mons 27 days

age(timestamp)

从current_date减去得到的数值

age(timestamp '1957-06-13')

43 years 8 mons 3 days

current_date

今天的日期

 

 

current_time

现在的时间

 

 

current_timestamp

日期和时间

 

 

date_part(text, timestamp)

获取子域(等效于extract)

date_part('hour', timestamp '2001-02-16 20:38:40')

20

date_part(text, interval)

获取子域(等效于extract)

date_part('month', interval '2 years 3 months')

3

date_trunc(text, timestamp)

截断成指定的精度

date_trunc('hour', timestamp '2001-02-16 20:38:40')

2001-02-16 20:00:00+00

extract(field from timestamp)

获取子域

extract(hour from timestamp '2001-02-16 20:38:40')

20

extract(field from interval)

获取子域

extract(month from interval '2 years 3 months')

3

localtime

今日的时间

 

 

localtimestamp

日期和时间

 

 

now()

当前的日期和时间(等效于 current_timestamp)

 

 

timeofday()

当前日期和时间

 

 

10.EXTRACT,date_part函数支持的field

CENTURY

世纪

EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13');

20

DAY

(月分)里的日期域(1-31)

EXTRACT(DAY from TIMESTAMP '2001-02-16 20:38:40');

16

DECADE

年份域除以10

EXTRACT(DECADE from TIMESTAMP '2001-02-16 20:38:40');

200

DOW

每周的星期号(0-6;星期天是0) (仅用于timestamp)

EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');

5

DOY

一年的第几天(1 -365/366) (仅用于 timestamp)

EXTRACT(DOY from TIMESTAMP '2001-02-16 20:38:40');

47

HOUR

小时域(0-23)

EXTRACT(HOUR from TIMESTAMP '2001-02-16 20:38:40');

20

MICROSECONDS

秒域,包括小数部分,乘以 1,000,000。

EXTRACT(MICROSECONDS from TIME '17:12:28.5');

28500000

MILLENNIUM

千年

EXTRACT(MILLENNIUM from TIMESTAMP '2001-02-16 20:38:40');

3

MILLISECONDS

秒域,包括小数部分,乘以 1000。

EXTRACT(MILLISECONDS from TIME '17:12:28.5');

28500

MINUTE

分钟域(0-59)

EXTRACT(MINUTE from TIMESTAMP '2001-02-16 20:38:40');

38

MONTH

对于timestamp数值,它是一年里的月份数(1-12);对于interval数值,它是月的数目,然后对12取模(0-11)

EXTRACT(MONTH from TIMESTAMP '2001-02-16 20:38:40');

2

QUARTER

该天所在的该年的季度(1-4)(仅用于 timestamp)

EXTRACT(QUARTER from TIMESTAMP '2001-02-16 20:38:40');

1

SECOND

秒域,包括小数部分(0-59[1])

EXTRACT(SECOND from TIMESTAMP '2001-02-16 20:38:40');

40

WEEK

该天在所在的年份里是第几周。

EXTRACT(WEEK from TIMESTAMP '2001-02-16 20:38:40');

7

YEAR

年份域

EXTRACT(YEAR from TIMESTAMP '2001-02-16 20:38:40');

2001

11.数组操作符和函数

=

等于

ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,4]

t

<> 

不等于

ARRAY[1,2,3] <> ARRAY[1,2,5]

t

小于

ARRAY[1,2,3] < ARRAY[1,2,5]

t

大于

ARRAY[1,4,3] > ARRAY[1,2,5]

t

<=

小于或等于

ARRAY[1,2,3] <= ARRAY[1,2,4]

t

>=

大于或等于

ARRAY[1,4,3] >= ARRAY[1,4,4]

t

||

数组与数组连接

ARRAY[1,2,3] || ARRAY[4,5,7]

{1,2,3,4,5,7}

||

数组与数组连接

ARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,10]]

{{1,2,3},{4,5,6},{7,8,10}}

||

元素与数组连接

4 || ARRAY[4,5,6]

{3,4,5,7}

||

元素与数组连接

ARRAY[4,5,6] || 8

{4,5,6,8}

array_cat(anyarray, anyarray)

连接两个数组

array_cat(ARRAY[1,2,3], ARRAY[4,5])

{1,2,3,4,5}

array_append(anyarray, anyelement)

向一个数组末尾附加一个元素

array_append(ARRAY[1,2], 3)

{1,2,3}

array_prepend(anyelement, anyarray)

向一个数组开头附加一个元素

array_prepend(1, ARRAY[2,3])

{1,2,3}

array_dims(anyarray)

返回一个数组维数的文本表示

array_dims(ARRAY[[1,2,3], [4,5,6]])

[1:2][1:3]

array_lower(anyarray, int)

返回指定的数组维数的下界

array_lower(array_prepend(0, ARRAY[1,2,3]), 1)

0

array_upper(anyarray, int)

返回指定数组维数的上界

array_upper(ARRAY[1,2,3,4], 1)

4

array_to_string(anyarray, text)

使用提供的分隔符连接数组元素

array_to_string(ARRAY[1, 2, 3], '~^~')

1~^~2~^~3

string_to_array(text, text)

使用指定的分隔符把字串拆分成数组元素

string_to_array('xx~^~yy~^~zz', '~^~')

{xx,yy,zz}

12.系统信息函数

current_database()

当前数据库的名字

 

 

current_schema()

当前模式的名字

 

 

current_schemas(boolean)

在搜索路径中的模式名字

 

 

current_user

目前执行环境下的用户名

 

 

inet_client_addr()

连接的远端地址

 

 

inet_client_port()

连接的远端端口

 

 

inet_server_addr()

连接的本地地址

 

 

inet_server_port()

连接的本地端口

 

 

session_user

会话用户名

 

 

pg_postmaster_start_time()

postmaster启动的时间

 

 

user

current_user

 

 

version()

PostgreSQL版本信息

 

 

has_table_privilege(user,table,privilege)

用户是否有访问表的权限

SELECT/INSERT/UPDATE/DELETE/RULE/REFERENCES/TRIGGER

允许用户在程序里查询对象访问权限的函数

has_table_privilege(table,privilege)

当前用户是否有访问表的权限

SELECT/INSERT/UPDATE/DELETE/RULE/REFERENCES/TRIGGER

has_database_privilege(user,database,privilege)

用户是否有访问数据库的权限

CREATE/TEMPORARY

has_database_privilege(database,privilege)

当前用户是否有访问数据库的权限

CREATE/TEMPORARY

has_function_privilege(user,function,privilege)

用户是否有访问函数的权限

EXECUTE

has_function_privilege(function,privilege)

当前用户是否有访问函数的权限

EXECUTE

has_language_privilege(user,language,privilege)

用户是否有访问语言的权限

USAGE

has_language_privilege(language,privilege)

当前用户是否有访问语言的权限

USAGE

has_schema_privilege(user,schema,privilege)

用户是否有访问模式的权限

CREAT/USAGE

has_schema_privilege(schema,privilege)

当前用户是否有访问模式的权限

CREAT/USAGE

has_tablespace_privilege(user,tablespace,privilege)

用户是否有访问表空间的权限

CREATE

has_tablespace_privilege(tablespace,privilege)

当前用户是否有访问表空间的权限

CREATE

pg_table_is_visible(table_oid)

该表/视图是否在搜索路径中可见

regclass

模式可视性查询函数

pg_type_is_visible(type_oid)

该类/视图型是否在搜索路径中可见

regtype

pg_function_is_visible(function_oid)

该函数是否在搜索路径中可见

regprocedure

pg_operator_is_visible(operator_oid)

该操作符是否在搜索路径中可见

regoperator

pg_opclass_is_visible(opclass_oid)

该操作符表是否在搜索路径中可见

regclass

pg_conversion_is_visible(conversion_oid)

转换是否在搜索路径中可见

regoperator

format_type(type_oid,typemod)

获取一个数据类型的SQL名称

系统表信息函数

pg_get_viewdef(view_oid)

为视图获取CREATE VIEW命令

pg_get_viewdef(view_oid,pretty_bool)

为视图获取CREATE VIEW命令

pg_get_ruledef(rule_oid)

为规则获取CREATE RULE命令

pg_get_ruledef(rule_oid,pretty_bool)

为规则获取CREATE RULE命令

pg_get_indexdef(index_oid)

为索引获取CREATE INDEX命令

pg_get_indexdef(index_oid,column_no,pretty_bool)

为索引获取CREATE INDEX命令,如果column_no不为零,则是只获取一个索引字段的定义

pg_get_triggerdef(trigger_oid)

为触发器获取CREATE [CONSTRAINT] TRIGGER

pg_get_constraintdef(constraint_oid)

获取一个约束的定义

pg_get_constraintdef(constraint_oid,pretty_bool)

获取一个约束的定义

pg_get_expr(expr_text,relation_oid)

反编译一个表达式的内部形式,假设其中的任何Vars都引用第二个参数指出的关系

pg_get_expr(expr_text,relation_oid, pretty_bool)

反编译一个表达式的内部形式,假设其中的任何Vars都引用第二个参数指出的关系

pg_get_userbyid(roleid)

获取给出的ID的角色名

pg_get_serial_sequence(table_name,column_name)

获取一个serial或者bigserial字段使用的序列名字

pg_tablespace_databases(tablespace_oid)

获取在指定表空间(OID表示)中拥有对象的一套数据库的OID的集合

13.系统管理函数

current_setting(setting_name)

当前设置的值

查询以及修改运行时配置参数的函数

set_config(setting_name,new_value,is_local)

设置参数并返回新值

pg_tablespace_size(oid)

指定OID代表的表空间使用的磁盘空间

数据库对象尺寸函数

pg_tablespace_size(name)

指定名字的表空间使用的磁盘空间

pg_database_size(oid)

指定OID代表的数据库使用的磁盘空间

pg_database_size(name)

指定名称的数据库使用的磁盘空间

pg_relation_size(oid)

指定OID代表的表或者索引所使用的磁盘空间

pg_relation_size(text)

指定名称的表或者索引使用的磁盘空间。这个名字可以用模式名修饰

pg_total_relation_size(oid)

指定OID代表的表使用的磁盘空间,包括索引和压缩数据

pg_total_relation_size(text)

指定名字的表所使用的全部磁盘空间,包括索引和压缩数据。表名字可以用模式名修饰。

pg_size_pretty(bigint)

把字节计算的尺寸转换成一个人类易读的尺寸单位

pg_relation_filenode(relationregclass)

获取指定对象的文件节点编号(通常为对象的oid值)。

数据库对象位置函数

pg_relation_filepath(relationregclass)

获取指定对象的完整路径名。

14.系列号操作函数

nextval(regclass)

递增序列对象到它的下一个数值并且返回该值。这个动作是自动完成的。即使多个会话并发运行nextval,每个进程也会安全地收到一个唯一的序列值。

currval(regclass)

在当前会话中返回最近一次nextval抓到的该序列的数值。(如果在本会话中从未在该序列上调用过 nextval,那么会报告一个错误。)请注意因为此函数返回一个会话范围的数值,而且也能给出一个可预计的结果,因此可以用于判断其它会话是否执行过nextval。

lastval()

返回当前会话里最近一次nextval返回的数值。这个函数等效于currval,只是它不用序列名为参数,它抓取当前会话里面最近一次nextval使用的序列。如果当前会话还没有调用过nextval,那么调用lastval将会报错。

setval(regclass, bigint)

重置序列对象的计数器数值。设置序列的last_value字段为指定数值并且将其is_called字段设置为true,表示下一次nextval将在返回数值之前递增该序列。

setval(regclass, bigint, boolean)

重置序列对象的计数器数值。功能等同于上面的setval函数,只是is_called可以设置为true或false。如果将其设置为false,那么下一次nextval将返回该数值,随后的nextval才开始递增该序列。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。