云服务器内容精选

  • 标量函数 字符串函数 函数 返回类型 描述 示例 结果 CHAR_LENGTH(s STRING) BIGINT 字符串的字符个数 CHAR_LENGTH('123') 3 CONCAT(s1 VARCHAR,s2 VARCHAR) VARCHAR 字符串连接 CONCAT('a','b') 'ab' LEFT(s VARCHAR,n INTEGER) VARCHAR 从左边取n个字符 LEFT('1234',2) '12' LOWER(s VARCHAR) VARCHAR 把字符串转化为小写 LOWER('Tom') 'tom' OCTET_LENGTH(s VARCHAR) BIGINT 获取字符串字节长度 OCTET_LENGTH('123') 3 REPEAT(s VARCHAR,n INTEGER) VARCHAR 将字符串重复n遍 REPEAT('123',2) '123123' REPLACE(s1 VARCHAR,s2 VARCHAR,s3 VARCHAR) VARCHAR 将字符串s1中的s2字符串替换成s3字符串 REPLACE('12334', '33', '88') '12884' RIGHT(s VARCHAR,n INTEGER) VARCHAR 从右这取n个字符 RIGHT('1234',2) '34' SUBSTRING(s VARCHAR,n1 INTEGER,n2 INTEGER) VARCHAR 从n1位置取n2长度的子串,没有n2取到字符串最后。 SUBSTRING('12344',2,3) '234' SUBSTR(s VARCHAR,n1 INTEGER,n2 INTEGER) VARCHAR 从n1位置取n2长度的子串,没有n2取到字符串最后。 SUBSTR('12344',2,3) '234' TRIM(s VARCHAR) VARCHAR 删除字符串前后空格 TRIM('123') '123' UPPER(s VARCHAR) VARCHAR 将字符串转为大写 UPPER('abc') 'ABC' ASCII(s VARCHAR) INTEGER 获得字符数字形式 注意:VOLTDB不支持,所以不能用到SQL语句中 ASCII('A') 65 OVERLAY(s1 placing s2 FROM int [for int]) VARCHAR 替换子字符串。FROM int表示从s1的第几个字符开始替换,for int表示替换s1的字符个数。 OVERLAY('HELLO' PLACING 'WORLD' FROM 2 for 3 ) OVERLAY('HELLO' PLACING 'WORLD' FROM 2 ) 'HWORLDO' 'HWORLD' POSITION(s2 VARCHAR, s1 VARCHAR) BIGINT 返回字符串s2在字符串s1的起始位置,字符串的位置下标是以1开头的。如果没有找到匹配,则返回0。 POSITION('ING' IN 'STRING') 4 REPLACE(STRING TEXT, FROM TEXT, TO TEXT) VARCHAR 把字符串STRING里出现的所有子字符串FROM的内容替换成子字符串TO的内容。 REPLACE('abcdefabcdef', 'cd', 'XXX') abXXXefabXXXef TRANSLATE(STRING TEXT, FROM TEXT, TO TEXT) VARCHAR 把在STRING中包含的任何匹配FROM中字符的字符转化为对应的在TO中的字符。如果FROM比TO长,删掉在FROM中出现的额外的字符。 TRANSLATE('12345', '143', 'ax') a2x5 数字函数 函数 返回类型 描述 示例 结果 备注 ABS(x) (与x相同) 绝对值 ABS(-17.4) 17.4 _ BITAND(n1 BIGINT,n2 BIGINT) BIGINT 位与 BITAND(6,3) 2 2^31~2^32范围内的数进行位与可以先转化为对应相同十六进制的负数再做位与运算 BITAND(1,2147483) 1 CEILING(f FLOAT或者DECIMAL) FLOAT或者DECIMAL,与输入参数类型一致 不小于参数的最小的整数 CEILING(-42.8) -42.0 实际测试VoltDB中CEILING函数返回值类型为FLOAT EXP(f FLOAT) FLOAT 自然指数 EXP(1.0) 2.718281828459045 - FLOOR(f FLOAT或者DECIMAL) FLOAT或者DECIMAL,与输入参数类型一致 不大于参数的最大整数 FLOOR(-42.8) -43.0 - LN(f FLOAT) FLOAT 自然对数 LN(100.0) 4.605170185988092 输入值大于0 LOG (f FLOAT) FLOAT 以10为底取对数 LOG(100.0) 2.0000000000000000 输入值大于0 MOD(a INTEGER, b INTEGER) INTEGER a/b的余数(模) MOD(9,4) 1 b不能为0 POWER(a FLOAT,b FLOAT) FLOAT a的b次幂 POWER(9.0,3.0) 729.0 - SQRT(f FLOAT) FLOAT 平方根 SQRT(2.0) 1.4142135623730951 - PI() FLOAT 返回圆周率 PI() 3.141592653589793 - 时间和日期函数 函数 返回类型 描述 示例 结果 备注 NOW() TIMESTAMP 获得当前时间 NOW() '2019-03-19 02:11:06.838000' - EXTRACT(FIELD FROM TIMESTAMP) DOUBLE PRECISION 获取时间的值 可填入HOUR YEAR MONTH MINUTE SECOND EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40') 20 - 类型转换函数 函数 返回类型 描述 示例 结果 备注 CAST(x AS y) - 类型转换函数,将x转换成y指定的类型 CAST('1997-10-22 00:00:00' AS TIMESTAMP) 1997-10-22 00:00:00.000000 - 其它函数(仅在SQL中使用) 函数 返回类型 描述 示例 结果 备注 COALESCE(expr1,expr2, ..., exprn) 与输入参数类型一致 返回参数列表中第一个非NULL的参数值 COALESCE (expr1, expr2) 等价于CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END 注意:输入参数类型必须一致。 COALESCE(null,'abc','123') 'abc' 如果表达式列表中的所有表达式都等于NULL,则本函数返回NULL。 它常用于在显示数据时用缺省值替换NULL 。 和CASE表达式一样,COALESCE不会计算不需要用来判断结果的参数;也就是说,在第一个非空参数右边的参数不会被计算。 DECODE(base_expr,Comparel,valuel,Compare2,value2, … default) - 把base_expr与后面的每个compare (n) 进行比较,如果匹配返回相应的value (n)。如果没有发生匹配,则返回default 注意:base_expr与compare*的数据类型必须一致;value*的数据类型也必须一致。 flag:=2; DECODE(flag ,1,'YEAR',2,'MONTH',3,'DAY','UNKNOWN') 'MONTH' - 父主题: 内置函数
  • CONVERT_TZ 功能描述 参考语法说明,本函数将日期时间string1(具有默认ISO时间戳格式'yyyy-MM-dd HH:mm:ss' )从时区string2转换为时区string3的值,结果以STRING类型返回。 语法说明 STRING CONVERT_TZ(string1, string2, string3) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串,不符合格式的字符串会返回NULL。 string2 STRING 转换前时区。时区的格式应该是缩写如“PST”,全名如“America/Los_Angeles”,或自定义ID如“GMT-08:00”。 string3 STRING 转换后时区。时区的格式应该是缩写如“PST”,全名如“America/Los_Angeles”,或自定义ID如“GMT-08:00”。 示例 测试语句 SELECT CONVERT_TZ(1970-01-01 00:00:00, UTC, America/Los_Angeles) AS `result`, CONVERT_TZ(1997-04-25 10:00:00, UTC, GMT-08:00) AS `result2` FROM testtable; 测试结果 result result2 1969-12-31 16:00:00 1997-04-25 02:00:00
  • TO_DATE 功能描述 参数语法说明,本函数将string2格式的日期字符串string1转换为DATE类型。 语法说明 DATE TO_DATE(string1[, string2]) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串。不符合格式的字符串会执行报错。 string2 STRING 字符串格式。如果不指定该参数,则默认为'yyyy-MM-dd' 。 示例 测试语句 SELECT TO_DATE('1997-04-25') AS `result`, TO_DATE('1997:04:25', 'yyyy-MM-dd') AS `result2`, TO_DATE('1997-04-25 00:00:00', 'yyyy-MM-dd HH:mm:ss') AS `result3` FROM testtable; 测试结果 result result2 result3 1997-04-25 1997-04-25 1997-04-25
  • FROM_UNIXTIME 功能描述 参考语法说明,本函数根据时间戳numeric和当前时区返回string格式的时间。 语法说明 STRING FROM_UNIXTIME(numeric[, string]) 入参说明 参数名 数据类型 参数说明 numeric BIGINT 内部时间戳值,表示自'1970-01-01 00:00:00' UTC 以来的秒数,值可以由UNIX_TIMESTAMP() 函数生成。 string STRING 时间字符串格式。如果该参数不指定,则默认为'yyyy-MM-dd HH:mm:ss'。 示例 测试语句 SELECT FROM_UNIXTIME(44) AS `result`, FROM_UNIXTIME(44, 'yyyy:MM:dd') AS `result2` FROM testtable; 测试结果 result result2 1970-01-01 08:00:44 1970:01:01
  • UNIX_TIMESTAMP(string1[, string2]) 功能描述 参数语法说明,本函数将以string2格式的时间字符串string1转为Unix 时间戳(以秒为单位)。以BIGINT类型返回。 语法说明 BIGINT UNIX_TIMESTAMP(string1[, string2]) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串。不符合string2参数格式的字符串语法会报错。 string2 STRING 时间字符串格式。如果不指定该参数,则默认为'yyyy-MM-dd HH:mm:ss' 。 示例 测试语句 SELECT UNIX_TIMESTAMP('1997-04-25', 'yyyy-MM-dd') AS `result`, UNIX_TIMESTAMP('1997-04-25 00:00:10', 'yyyy-MM-dd HH:mm:ss') AS `result2`, UNIX_TIMESTAMP('1997-04-25 00:00:00') AS `result3` FROM testtable; 测试结果 result result2 result3 861897600 861897610 861897600
  • TO_TIMESTAMP 功能描述 将string2格式的日期时间字符串string1转换为TIMESTAMP类型返回。 语法说明 TIMESTAMP TO_TIMESTAMP(string1[, string2]) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串。不符合格式的字符串会返回NULL。 string2 STRING 日期字符串格式。如果该参数不指定,则默认为'yyyy-MM-dd HH:mm:ss' 。 示例 测试语句 SELECT TO_TIMESTAMP('1997-04-25', 'yyyy-MM-dd') AS `result`, TO_TIMESTAMP('1997-04-25 00:00:00') AS `result2`, TO_TIMESTAMP('1997-04-25 00:00:00', 'yyyy-MM-dd HH:mm:ss') AS `result3` FROM testtable; 测试结果 result result2 result3 1997-04-25 00:00 1997-04-25 00:00 1997-04-25 00:00
  • OVERLAPS 功能描述 如果两个时间范围有重叠,则返回TRUE,反之,则返回FALSE。 语法说明 BOOLEAN (timepoint1, temporal1) OVERLAPS (timepoint2, temporal2) 入参说明 参数名 数据类型 参数说明 timepoint1/timepoint2 DATE/TIME/TIMESTAMP 时间点。 temporal1/temporal2 DATE/TIME/TIMESTAMP/INTERVAL 时间点或时间间隔。 (timepoint, temporal)在判断是否重叠时为闭区间。 temporal可以是DATE/TIME/TIMESTAMP也可以是INTERVAL。 当temporal是DATE/TIME/TIMESTAMP时,(timepoint, temporal)表示timepoint, temporal之间的时间间隔。允许temporal在timepoint之前,如(DATE '1997-04-25', DATE '1997-04-23')也合法。 当temporal是INTERVAL时,(timepoint, temporal)表示timepoint, timepoint+temporal之间的时间间隔。 必须保证(timepoint1, temporal1)和(timepoint2, temporal2)是同一数据类型的时间间隔。 示例 测试语句 SELECT (TIME '2:55:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR) AS `result`, (TIME '2:30:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR) AS `result2`, (TIME '2:30:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:31:00', INTERVAL '2' HOUR) AS `result3`, (TIME '9:00:00', TIME '10:00:00') OVERLAPS (TIME '10:00:00', INTERVAL '3' HOUR) AS `result4`, (TIMESTAMP '1997-04-25 12:00:00', TIMESTAMP '1997-04-25 12:20:00') OVERLAPS (TIMESTAMP '1997-04-25 13:00:00', INTERVAL '2' HOUR) AS `result5`, (DATE '1997-04-23', INTERVAL '2' DAY) OVERLAPS (DATE '1997-04-25', INTERVAL '2' DAY) AS `result6`, (DATE '1997-04-25', DATE '1997-04-23') OVERLAPS (DATE '1997-04-25', INTERVAL '2' DAY) AS `result7` FROM testtable; 测试结果 result result2 result3 result4 result5 result6 result7 true true false true false true true
  • DATE_FORMAT 功能描述 将时间戳或时间戳格式的字符串转换为指定格式的日期字符串。 语法说明 STRING DATE_FORMAT(timestamp, dateformat) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP/STRING 时间点。 dateformat STRING 日期格式字符串。 示例 测试语句 SELECT DATE_FORMAT(TIMESTAMP '1997-04-25 10:11:12', 'yyyy-MM-dd HH:mm:ss') AS `result`, DATE_FORMAT(TIMESTAMP '1997-04-25 10:11:12', 'yyyy-MM-dd') AS `result2`, DATE_FORMAT(TIMESTAMP '1997-04-25 10:11:12', 'yy/MM/dd HH:mm') AS `result3`, DATE_FORMAT('1997-04-25 10:11:12', 'yyyy-MM-dd') AS `result4` FROM testtable; 测试结果 result result2 result3 result4 1997-04-25 10:11:12 1997-04-25 97/04/25 10:11 1997-04-25
  • TIMESTAMPDIFF 功能描述 参考语法说明,本函数功能为返回timepoint1和timepoint2之间的时间间隔,间隔的单位由第一个参数timepointunit指定。 语法说明 INT TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) 入参说明 参数名 数据类型 参数说明 timepointunit TIMEUNIT 时间单位。取值范围为: SECOND、MINUTE、HOUR、DAY、MONTH、YEAR。 timepoint1/timepoint2 TIMESTAMP/DATE 时间点。 示例 测试语句 SELECT TIMESTAMPDIFF(DAY, TIMESTAMP '1997-04-25 10:00:00', TIMESTAMP '1997-04-28 10:00:00') AS `result`, TIMESTAMPDIFF(DAY, DATE '1997-04-25', DATE '1997-04-28') AS `result2`, TIMESTAMPDIFF(DAY, TIMESTAMP '1997-04-27 10:00:20', TIMESTAMP '1997-04-25 10:00:00') AS `result3` FROM testtable; 测试结果 result result2 result3 3 3 -2
  • CEIL 功能描述 返回将时间点向上取值到指定时间单位的值。 语法说明 TIME/TIMESTAMP(3) CEIL(timepoint TO timeintervalunit) 入参说明 参数名 数据类型 参数说明 timepoint TIMESTAMP/TIME SQL时间或SQL时间戳。 timeintervalunit TIMEUNIT 时间单位,类型可以是YEAR/QUARTER/MONTH/WEEK/DAY/DOY/HOUR/MINUTE/SECOND。 示例 测试语句。 SELECT CEIL(TIME '13:14:15' TO MINUTE) AS `result` CEIL(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result2`, CEIL(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result3` FROM testtable; 测试结果 result result2 result3 13:15 13:15 1997-04-25T13:15
  • TIMESTAMPADD 功能描述 参考语法说明,本函数功能为将整型interval与timeintervalunit组成的结果添加到timepoint中,并返回添加后的日期时间。 TIMESTAMPADD函数返回结果与timepoint相同。例外场景为:如果timepoint输入类型为TIMESTAMP,也可以将TIMESTAMPADD函数返回结果插入到DATE类型的表字段中。 语法说明 TIMESTAMP(3)/DATE/TIME TIMESTAMPADD(timeintervalunit, interval, timepoint) 入参说明 参数名 数据类型 参数说明 timeintervalunit TIMEUNIT 时间单位。 interval INT 整型的时间间隔。 timepoint TIMESTAMP/DATE/TIME 时间点 示例 测试语句 SELECT TIMESTAMPADD(WEEK, 1, DATE '1997-04-25') AS `result`, TIMESTAMPADD(QUARTER, 1, TIMESTAMP '1997-04-25 10:11:12') AS `result2`, TIMESTAMPADD(SECOND, 2, TIME '10:11:12') AS `result3` FROM testtable; 测试结果 result result2 result3 1997-05-02 如果该字段插入到TIMESTAMP类型的表字段中,则返回:1997-07-25T10:11:12 如果该字段插入到TIMESTAMP类型的表字段中,则返回:1997-07-25 10:11:14
  • DAYOFWEEK 功能描述 计算当前日期是当前周的第几天(1 到 7之间的整数),以BIGINT类型返回。 需要注意这里自然周的起点是星期天,即每周的第1天是星期天,第2天是星期一,依次类推。 语法说明 BIGINT DAYOFWEEK(date) 入参说明 参数名 数据类型 参数说明 date DATE SQL日期。 示例 测试语句 SELECT DAYOFWEEK(DATE '1997-04-25') AS `result` FROM testtable; 测试结果 result 6
  • HOUR 功能描述 从当前时间戳获取以24小时制的小时数进行返回,范围0-23(0 到 23 之间的整数),返回类型为BIGINT。 语法说明 BIGINT HOUR(timestamp) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP SQL时间戳。 示例 测试语句 SELECT HOUR(TIMESTAMP '1997-04-25 10:11:12') AS `result` FROM testtable; 测试结果 result 10
  • DAYOFMONTH 功能描述 计算当前日期是这个月的第几天(1到31之间的整数),以BIGINT类型返回。 语法说明 BIGINT DAYOFMONTH(date) 入参说明 参数名 数据类型 参数说明 date DATE SQL日期。 示例 测试语句 SELECT DAYOFMONTH(DATE '1997-04-25' ) AS `result` FROM testtable; 测试结果 result 25
  • FLOOR 功能描述 返回将时间点向下取值到指定时间单位的值。 语法说明 TIME/TIMESTAMP(3) FLOOR(timepoint TO timeintervalunit) 入参说明 参数名 数据类型 参数说明 timepoint TIMESTAMP/TIME SQL时间或SQL时间戳。 timeintervalunit TIMEUNIT 时间单位,类型可以是YEAR/QUARTER/MONTH/WEEK/DAY/DOY/HOUR/MINUTE/SECOND。 示例 测试语句。 SELECT FLOOR(TIME '13:14:15' TO MINUTE) AS `result` FLOOR(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result2`, FLOOR(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result3` FROM testtable; 测试结果 message message2 message3 13:14 13:14 1997-04-25T13:14