华为云用户手册

  • to_seconds() 描述:返回入参自公元0年以来的秒数。 参数:入参为时间类型表达式、text、datetime、date或time等类型。时间表达式按照datetime来解析。 返回值类型:bigint 示例: gaussdb=# SELECT TO_SECONDS('2009-11-29 13:43:32'); to_seconds ------------- 63426721412 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • utc_date() 描述:将函数执行时的当前UTC日期作为“YYYY-MM-DD”格式的值返回。 返回值类型:date 示例: gaussdb=# SELECT utc_date(); utc_date ------------ 2023-08-10 (1 row) 该函数仅在sql_compatibility = 'B',且参数b_format_version值为5.7和b_format_dev_version值为s1时有效。
  • weekday() 描述:返回一个日期的工作日索引值,即星期一为0,星期二为1,星期三为2,星期四为3,星期五为4,星期六为5,星期日为6。 参数:时间类型表达式、text、datetime、date或time等类型。 返回值类型:bigint 示例: gaussdb=# SELECT weekday('1970-01-01 12:00:00'); weekday --------- 3 (1 row) 该函数仅在sql_compatibility = 'B',且参数b_format_version值为5.7和b_format_dev_version值为s1时有效。
  • unix_timestamp([date]) 描述:返回一个UNIX时间戳,表示自“1970-01-01 08:00”UTC以来的秒数。若无入参,则默认值为调用函数时的datetime时间戳。 参数:时间类型表达式、text、datetime、date或time等类型。 返回值类型:numeric 示例: gaussdb=# SELECT UNIX_TIMESTAMP('2022-12-22'); unix_timestamp ---------------- 1671638400 (1 row) 该函数仅在sql_compatibility = 'B',且参数b_format_version值为5.7和b_format_dev_version值为s1时有效。
  • utc_time() 描述:将函数执行时的当前UTC时间作为“HH:MM:SS”格式的值返回。 参数:表示时间精度,int类型,范围为[0,6],缺省时默认值为0。 返回值类型:time without time zone 示例: gaussdb=# SELECT utc_time(); utc_time ---------- 11:47:53 (1 row) 该函数仅在sql_compatibility = 'B',且参数b_format_version值为5.7和b_format_dev_version值为s1时有效。
  • year() 描述:提取日期时间的年份部分,将结果返回。 参数:入参为指定提取的日期时间,是时间类型表达式、text、datetime、date或time等类型。 返回值类型:int 示例: gaussdb=# SELECT year('23-05-22'); year ------ 2023 (1 row) 该函数仅在sql_compatibility = 'B',且参数b_format_version值为5.7和b_format_dev_version值为s1时有效。
  • utc_timestamp() 描述:将函数执行时的当前UTC时间戳作为“YYYY-MM-DD HH:MM:SS”格式的值返回。 参数:表示时间精度,int类型,范围为[0,6],缺省时默认值为0。 返回值类型:timestamp without time zone 示例: gaussdb=# SELECT utc_timestamp(); utc_timestamp --------------------- 2023-08-21 11:51:19 (1 row) 该函数仅在sql_compatibility = 'B',且参数b_format_version值为5.7和b_format_dev_version值为s1时有效。
  • week(date[, mode]) 描述:返回日期所在的周数。 参数: 参数date:指定日期时间,时间类型表达式、text、datetime、date或time等类型。 可选参数mode的含义如表17所示,缺省时视为0。 表17 mode说明 mode 一周的第一天 范围 哪一周是第一周 0 周日 0~53 今年有周日的周。 1 周一 0~53 今年有4天及以上的周。 2 周日 1~53 今年有周日的周。 3 周一 1~53 今年有4天及以上的周。 4 周日 0~53 今年有4天及以上的周。 5 周一 0~53 今年有周一的周。 6 周日 1~53 今年有4天及以上的周。 7 周一 1~53 今年有周一的周。 返回值类型:bigint 示例: gaussdb=# SELECT week(date'2000-01-01', 1); week ------ 0 (1 row) gaussdb=# SELECT week('2000-01-01', 2); week ------ 52 (1 row) 该函数仅在sql_compatibility = 'B',且参数b_format_version值为5.7和b_format_dev_version值为s1时有效。
  • weekofyear(date) 描述:返回日期时间的日历周,范围1~53。等同于week(date, 3)。 参数: date:指定日期时间,时间类型表达式、text、datetime、date或time等类型。 函数等同于week(date, 3),具体请参见week(date[, mode])。 返回值类型:bigint 示例: gaussdb=# SELECT weekofyear('1970-05-22'); weekofyear ------------ 21 (1 row) 该函数仅在sql_compatibility = 'B',且参数b_format_version值为5.7和b_format_dev_version值为s1时有效。
  • subtime(expr1,expr2) 描述:返回时间或时间日期表达式expr1与时间表达式expr2的差值。 参数: expr1为timestamp without time zone/time类型的表达式,expr2为time表达式。 返回值类型与expr1类型有关,两入参存在text类型则返回text,解析为timestamp without time zone则返回timestamp without time zone,解析为time则返回time。 返回值类型:text、timestamp without time zone或time。 示例: gaussdb=# SELECT subtime('2000-03-01 20:59:59', '22:58'); subtime --------------------- 2000-02-29 22:01:59 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • addtime(expr1,expr2) 描述:返回时间或时间日期表达式expr1与时间表达式expr2相加后的值,返回值的格式与expr1保持一致。 参数: expr1为timestamp without time zone/time类型的表达式,expr2为time表达式。 返回值类型与expr1类型有关,解析为timestamp without time zone则返回timestamp without time zone,解析为time则返回time。 返回值类型:text、timestamp without time zone或time 示例: gaussdb=# SELECT addtime('2000-03-01 20:59:59', '00:00:01'); addtime --------------------- 2000-03-01 21:00:00 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • timestampadd(unit,interval,datetime_expr) 描述:返回一个新的时间戳,该时间戳是通过将unit的多个interval添加到datetime_expr来计算的。 参数:参数介绍如表16所示。 表16 参数说明 参数 类型 描述 取值范围 unit 关键字 时间间隔单位。 YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND、MICROSECOND、Y、MM(月)、D、H、M(分钟)、S、US、YRS、QTR、MON、HRS、MIN、YEARS、WEEKS或HOURS等。 interval numeric 时间间隔数值。 和类型范围一致。 datetime_expr 时间类型表达式、text、datetime、date或time等类型 需要变更的时间日期。若为text类型则返回text,为time则返回time,其他情况返回datetime。 和类型范围一致。 返回值类型:DATETIME、TEXT、TIME WITHOUT TIMEZONE 示例: gaussdb=# SELECT TIMESTAMPADD(DAY,-2,'2022-07-27'); timestampadd -------------- 2022-07-25 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。 timestampadd实际注册的函数为timestamp_add,可以用“\df timestamp_add”等指令查询函数详细入参与返回值。 在PREPARE语句中,timestampadd的第一个参数为关键字,不支持使用参数$1替代,例如:PREPARE p1 AS SELECT timestampadd($1, -2, '2023-01-01');
  • timediff() 描述:计算两个时间之间的差值,并返回一个时间间隔。 参数:有两个参数,为时间类型表达式、text、datetime、date或time等类型 返回值类型:TIME WITHOUT TIMEZONE 示例: gaussdb=# SELECT timediff(date'2022-12-30',20221229); timediff ---------- 24:00:00 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • time_to_sec() 描述:将time类型入参转化为秒数。 参数:入参为时间类型表达式、text、datetime、date或time等类型。时间表达式按照time来解析。 返回值类型:int 示例: gaussdb=# SELECT time_to_sec('00:00:01'); time_to_sec ------------- 1 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • to_days() 描述:返回指定日期自0000年1月1日以来的天数。 参数:入参为时间类型表达式、text、datetime、date或time等类型。时间表达式按照date来解析。 返回值类型:bigint 示例: gaussdb=# SELECT to_days('2000-1-1'); to_days --------- 730485 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • time_format(time, format) 描述:根据格式说明符format格式化time入参。 参数: time为时间类型表达式、text、datetime、date或time等类型。 format为text类型,支持格式如表15所示。 表15 format的取值及含义 format取值 含义 %f 微秒(000000至999999)。 %H 小时(00到23)。 %h、%I 小时(00到12)。 %l 小时(0到12)。 %k 小时(0到838)。 %i 分钟(00至59)。 %p AM or PM。 %r 时间为12小时AM或PM格式(hh:mm:ss AM / PM)。 %S、%s 秒(00到59)。 %T 24小时格式的时间(hh:mm:ss)。 %a、%b、%D、%j、%M、%U、%u、%V、%v、%W、%w、%X、%x NULL。 %c、%e 0。 %d、%m、%y 00。 %Y 0000。 %其他字符/其他字符,如%A/A 返回字符本身,如A。 %单个字符+字符串s 解析(%单个字符),拼接s。 返回值类型:text 示例: gaussdb=# SELECT TIME_FORMAT('25:30:30', '%T|%r|%H|%h|%I|%i|%S|%f|%p|%k'); time_format -------------------------------------------------- 25:30:30|01:30:30 AM|25|01|01|30|30|000000|AM|25 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • quarter() 描述:输入一个日期类型,返回对应的日期的季度部分。 参数:入参为指定提取的日期时间,是时间类型表达式、TEXT、DATETIME、DATE或TIME等类型。 返回值类型:bigint 示例: gaussdb=# SELECT QUARTER('2012-1-1'); quarter --------- 1 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • str_to_date(str, format) 描述:将指定的字符串根据指定日期格式转为日期/时间。 参数: str:text类型,需要格式化成日期的字符串; format:text类型,格式化字符串。format参数列表如表13所示。 表13 format的取值及含义 format取值 含义 %a 星期的缩写(Sun..Sat)。 %b 月份的缩写(Jan..Dec)。 %c 月份数字(0..12)。 %D 带有英语前缀的月份中的每天(0th, 1st, 2nd, 3rd, …)。 %d 月份中的每天的两位数字表示(00..31)。 %e 月份中的每天的数字表示(0..31)。 %f 微秒(000000..999999)。 %H 小时(00..23)。 %h 小时(01..12)。 %I 小时(01..12)。 %i 分钟(00..59)。 %j 一年中的每天(001..366)。 %k 小时(0..23)。 %l 小时(1..12)。 %M 月份名称(January..December)。 %m 两位数字月份(00..12)。 %p AM或者PM。 %r 十二小时制时间(hh:mm:ss后跟AM或PM)。 %S 秒(00..59)。 %s 秒(00..59)。 %T 二十四小时制时间(hh:mm:ss)。 %U 一年中的星期(00..53),每周的开始是星期天。 %u 一年中的星期(00..53),每周的开始是星期一。 %V 一年中的星期(01..53),每周的开始是星期天。 %v 一年中的星期(01..53),每周的开始是星期一。 %W 星期的名称(Sunday..Saturday)。 %w 星期中的每天(0=星期天..6=星期六)。 %X 一年中的星期,每周的开始是星期天,四位数字,用于%V。 %x 一年中的星期,每周的开始是星期一,四位数字,用于%v。 %Y 四位数字年份。 %y 两位数字年份。 返回值类型:text 示例: gaussdb=# SELECT str_to_date('May 1, 2013','%M %d,%Y');-- 2013-05-01 str_to_date ------------- 2013-05-01 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。 只支持返回YYYY-MM-DD格式的时间。 对于包含0年0月0日的时间或者只包含时分秒的时间,会报警并返回NULL。
  • subdate(expr,INTERVAL val unit) 描述:指定开始的日期时间和要从开始的日期时间减去的时间间隔,返回相减后的日期结果值。 参数:参数介绍如表14所示。 表14 参数说明 参数 类型 描述 取值范围 expr 时间类型表达式、text、datetime、date或time等类型 指定开始的日期时间。 和类型范围一致。 val 整数、浮点数、字符串等类型 指定要减去的时间间隔。 和类型范围一致。 unit 关键字 YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND、MICROSECOND等,具体请参见时间间隔表达式。 返回值类型:TEXT、DATE、DATETIME或TIME WITHOUT TIMEZONE。 示例: gaussdb=# SELECT SUBDATE('2018-05-01', INTERVAL 1 YEAR); subdate ------------ 2017-05-01 (1 row) 1. 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。 2. 在PREPARE语句中,subdate的第二个参数为interval表达式,当使用参数$1完全替代时,会导致结果非预期,例如:PREPARE p1 AS SELECT subdate('2023-01-01 10:00:00', $1); EXECUTE p1(interval 13 hour);该用例返回非预期结果为'2023-01-01 10:00:00'。
  • subdate(expr, days) 描述:指定开始的日期时间和要从开始的日期时间减去的天数值,返回相减后的日期结果值。 参数: expr:指定开始的日期时间,时间类型表达式,TEXT、DATE、DATETIME或TIME等类型。 days:需要减去的天数,int类型。 返回值类型:TEXT、DATE、DATETIME或TIME WITHOUT TIMEZONE。 示例: gaussdb=# SELECT SUBDATE('2023-1-1', 20); subdate ------------ 2022-12-12 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • from_days(days) 描述:给定一个天数,返回相应的日期值。 参数:入参为时间类型表达式、text、datetime、date或time等类型。 返回值类型:date 示例: gaussdb=# SELECT from_days(36524);--0099-12-31 from_days ------------ 0099-12-31 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。 对于空字符和0字符,将作为0处理;对于无法正确转换为bigint的入参,将报错。 入参小于366时,返回日期为0000-00-00。
  • get_format({DATE | TIME | DATETIME | TIMESTAMP}, {'EUR' | 'USA' | 'JIS' | 'ISO' | 'INTERNAL'}) 描述:将日期或时间或datetime转换为指定格式的时间格式字符串,即不同地区的“年月日 时分秒”格式和排序标准。 参数: DATE|TIME|DATETIME|TIMESTAMP:表示时间类型,为关键字。 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL':五种时间格式,text类型。 返回值类型:text 示例: gaussdb=# SELECT get_format(date, 'eur'); get_format ------------ %d.%m.%y (1 row) gaussdb=# SELECT get_format(date, 'usa'); get_format ------------ %m.%d.%y (1 row) 1. 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。 2. 在PREPARE语句中,get_format的第一个参数为关键字,不支持使用参数$1替代,例如:PREPARE p1 AS SELECT get_format($1, 'usa');
  • makedate(year,dayofyear) 描述:根据年份和天数值返回日期。 参数: year:bigint。 dayofyear:bigint,该年的第若干天,允许跨年,小于等于0时返回null。 返回值类型:date 示例: gaussdb=# SELECT makedate(2000, 60); makedate ------------ 2000-02-29 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • microsecond() 描述:输入一个时间类型,返回对应的时间的微秒部分。 参数:时间类型表达式、text、datetime、date或time等类型。 返回值类型:bigint 示例: gaussdb=# SELECT MICROSECOND('2023-5-5 10:10:10.24485'); microsecond ------------- 244850 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • from_unixtime(unix_timestamp[,format]) 描述:将Unix时间戳转换为日期时间格式的函数。Unix时间戳是指从1970年1月1日08:00:00 UTC到指定时间的秒数。 参数: unix_timestamp:unix时间戳,numeric类型。 format:时间格式,text类型。 返回值类型:text/datetime 示例: gaussdb=# SELECT from_unixtime(1111885200); from_unixtime --------------------- 2005-03-27 09:00:00 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • month() 描述:返回从过去日期开始的月份。 参数:入参为指定提取的日期时间,是时间类型表达式、TEXT、DATETIME、DATE或TIME等类型。 返回值类型:int 示例: gaussdb=# SELECT month('2021-11-30'); month ------- 11 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • second() 描述:输入一个时间类型,返回对应的时间的秒部分。 参数:时间类型表达式、text、datetime、date或time等类型。 返回值类型:bigint 示例: gaussdb=# SELECT SECOND('2023-5-5 10:10:10'); second -------- 10 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • hour() 描述:输入一个时间类型,返回对应的时间的小时部分。 参数:时间类型表达式、text、datetime、date或time等类型。 返回值类型:bigint 示例: gaussdb=# SELECT HOUR('10:10:10.1'); hour ------ 10 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
  • monthname() 描述:返回日期的月份全名。 参数:入参为时间类型表达式、text、datetime、date或time等类型。 返回值类型:text 示例: gaussdb=# SELECT monthname('2023-02-28'); monthname ----------- February (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。 返回值使用的语言由lc_time_names系统变量的值控制。
  • period_diff(p1,p2) 描述:计算两个时间段的月份差。 参数:参数类型为bigint,两个参数同时使用YYMM或YYYYMM格式来表示时间段。 返回值类型:bigint,月份差。 示例: gaussdb=# SELECT period_diff('202101', '202102'); period_diff ------------- -1 (1 row) 该函数在sql_compatibility = 'B',且参数b_format_version值为5.7、b_format_dev_version值为s1时有效。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全