> 文章列表 > HANA SQL 常用函数分类

HANA SQL 常用函数分类

HANA SQL 常用函数分类

数据转换类函数:

函数名 说明 语法
CAST 转换类型 CAST (expression AS data_type)
TO_ALPHANUM 将给定的 value 转换为 ALPHANUM 数据类型。 TO_ALPHANUM (value)
TO_BIGINT 将 value 转换为 BIGINT 类型。 TO_BIGINT (value)
TO_BINARY 将 value 转换为 BINARY 类型。 TO_BINARY (value)
TO_BLOB 将 value 转换为 BLOB 类型。参数值必须是二进制字符串 TO_BLOB (value)
TO_CHAR 将 value 转换为 CHAR 类型。如果省略 format 关键字,转换将会使用 Date Formats 中说明的日期格式模型。 TO_CHAR (value [, format])
TO_CLOB 将 value 转换为 CLOB 类型。 TO_CLOB (value)
TO_DATE 将日期字符串 d 转换为 DATE 数据类型。如果省略 format 关键字,转换将会使用 Date Formats 中说明的日期格式模型。 TO_DATE (d [, format])
TO_DATS 将字符串 d 转换为 ABAP 日期字符串,格式为”YYYYMMDD”。 TO_DATS (d)
TO_DECIMAL 将 value 转换为 DECIMAL 类型。 TO_DECIMAL (value [, precision, scale])
TO_DOUBLE 将 value 转换为 DOUBLE(双精度)数据类型。 TO_DOUBLE (value)
 TO_INT 将 value 转换为 INTEGER 类型。 TO_INT (value)
TO_INTEGER 将 value 转换为 INTEGER 类型。 TO_INTEGER (value)
TO_NCHAR 将 value 转换为 NCHAR Unicode 字符类型。如果省略 format 关键字,转换将会使用 Date Formats中说明的日期格式模型。 TO_NCHAR (value [, format])
TO_NCLOB 将 value 转换为 NCLOB 数据类型。 TO_NCLOB (value)
TO_NVARCHAR 将 value 转换为 NVARCHAR Unicode 字符类型。如果省略 format 关键字,转换将会使用 DateFormats 中说明的日期格式模型。 TO_NVARCHAR (value [,format])
TO_REAL 将 value 转换为实数(单精度)数据类型。 TO_REAL (value)
TO_SECONDDATE 将 value 转换为 SECONDDATE 类型。如果省略 format 关键字,转换将会使用 Date Formats 中说明的日期格式模型。 TO_SECONDDATE (d [, format])
TO_SMALLDECIMAL 将 value 转换为 SMALLDECIMAL 类型。 TO_SMALLDECIMAL (value)
TO_SMALLINT 将 value 转换为 SMALLINT 类型。 TO_SMALLINT (value)
TO_TIME 将时间字符串 t 转换为 TIME 类型。如果省略 format 关键字,转换将会使用 Date Formats 中说明的日期格式模型。 TO_TIME (t [, format])
TO_TIMESTAMP 将时间字符串 t 转换为 TIMESTAMP 类型。如果省略 format 关键字,转换将会使用 Date Formats中说明的日期格式模型。 TO_TIMESTAMP (d [, format])
TO_TINYINT 将 value 转换为 TINYINT 类型。 TO_TINYINT (value)
TO_VARCHAR 将给定 value 转换为 VARCHAR 字符串类型。如果省略 format 关键字,转换将会使用 Date Formats中说明的日期格式模型。 TO_VARCHAR (value [, format])

日期时间函数:

函数名 说明 语法
ADD_DAYS 计算日期 d 后 n 天的值。 ADD_DAYS (d, n)
 ADD_MONTHS 计算日期 d 后 n 月的值。 ADD_MONTHS (d, n)
ADD_SECONDS 计算时间 t 后 n 秒的值。 ADD_SECONDS (t, n)
ADD_YEARS 计算日期 d 后 n 年的值。 ADD_YEARS (d, n)
CURRENT_DATE 返回当前本地系统日期。 CURRENT_DATE
CURRENT_TIME 返回当前本地系统时间。 CURRENT_TIME
CURRENT_TIMESTAMP 返回当前本地系统的时间戳信息。 CURRENT_TIMESTAMP
CURRECT_UTCDATE 返回当前 UTC 日期。 UTC 代表协调世界时,也被称为格林尼治标准时间( GMT)。 CURRECT_UTCDATE
CURRENT_UTCTIME 返回当前 UTC 时间。 CURRENT_UTCTIME
CURRENT_UTCTIMESTAMP 返回当前 UTC 时间戳。 CURRENT_UTCTIMESTAMP
DAYNAME 返回一周中日期 d 的英文名 DAYNAME (d)
DAYOFMONTH 返回一个月中日期 d 的整数数字(即一个月中的几号)。 DAYOFMONTH (d)
DAYOFYEAR 返回一年中代表日期 d 的整数数字(即一年中的第几天)。 DAYOFYEAR (d)
DAYS_BETWEEN 计算 d1 和 d2 之间的天数(只包括一端:[d1,d2)或者(d1,d2])。 DAYS_BETWEEN (d1, d2)
EXTRACT 返回日期 d 中指定的时间日期字段的值(年、月、日、时、分、秒)。 EXTRACT ({YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} FROM d)
HOUR 返回时间 t 中表示小时的整数。 HOUR (t)
ISOWEEK 返回日期 d 的 ISO 年份和星期数。星期数前缀为字母 W。 ISOWEEK (d)
LAST_DAY 返回包含日期 d 的月的最后一天日期。 LAST_DAY (d)
LOCALTOUTC 将 timezone 下的本地时间 t 转换为 UTC 时间 LOCALTOUTC (t, timezone)
MINUTE 返回时间 t 中表示分钟的数字。 MINUTE(t)
MONTH 返回日期 d 所在月份的数字。 MONTH(d)
MONTHNAME 返回日期 d 所在月份的英文名。 MONTHNAME(d)
NEXT_DAY 返回日期 d 的第二天。 NEXT_DAY (d)
NOW 返回当前时间戳。 NOW ()
QUARTER 返回日期 d 的年份,季度。第一季度由 start_month 定义的月份开始,如果没有定义start_month,第一季度假设为从一月开始。 QUARTER (d, [, start_month ])
SECOND 返回时间 t 表示的秒数。 SECOND (t)
SECONDS_BETWEEN 计算日期参数 d1 和 d2 之间的秒数,语义上等同于 d2-d1。 SECONDS_BETWEEN (d1, d2)
UTCTOLOCAL 将 UTC 时间值转换为时区 timezone 下的本地时间。 UTCTOLOCAL (t, timezone)
WEEK 返回日期 d 所在星期的整数数字。 WEEK (d)
WEEKDAY 返回代表日期 d 所在星期的日期数字(星期几)。返回值范围为 0 至 6,表示 Monday(0)至 Sunday(6)。 WEEKDAY (d)
YEAR 返回日期 d 所在的年份数。 YEAR (d)

数字函数:

函数名 说明 语法
ABS 返回数字参数 n 的绝对值。 ABS (n)
ACOS 返回参数 n 的反余弦,以弧度为单位,值为-1 至 1。 ACOS (n)
ASIN 返回参数 n 的反正弦值,以弧度为单位,值为-1 至 1。 ASIN (n)
ATAN 返回参数 n 的反正切值,以弧度为单位, n 的范围为无限。 ATAN (n)
ATAN2 返回两数 n 和 m 比率的反正切值,以弧度为单位。这和 ATAN(n/m)的结果一致。 ATAN2 (n, m)
BINTOHEX 将二进制值转换为十六进制。 BINTOHEX (expression)
BITAND 对参数 n 和 m 的位执行 AND 操作(即按位与)。 n 和 m 都必须是非负整数。 BITAND 函数返回 BIGINT 类型的结果。 BITAND (n, m)
CEIL 返回大于或者等于 n 的第一个整数(大小它的最小整数) CEIL(n)
COS 返回参数 n 的余弦值,以弧度为单位。 COS (n)
COSH 返回参数 n 的双曲余弦值。 COSH (n)
COT 计算参数 n 的余切值,其中 n 以弧度表示。 COT (n)
EXP 返回以 e 为底, n 为指数的计算结果。 EXP (n)
FLOOR 返回不大于参数 n 的最大整数。 FLOOR (n)
GREATEST 返回参数 n1,n2,…最大数。 GREATEST (n1 [, n2]...)
HEXTOBIN 将十六进制数转换为二进制数。 HEXTOBIN (value)
LEAST 返回参数 n1,n2,…最小数。 LEAST (n1 [, n2]...)
LN 返回参数 n 的自然对数。 LN (n)
LOG 返回以 b 为底, n 的自然对数值。底 b 必须是大于 1 的正数,且 n 必须是正数。 LOG (b, n)
MOD 返回 n 整除 b 的余数值。 MOD (n, d)
POWER 计算以 b 为底, e 为指数的值。 POWER (b, e)
ROUND 返回参数 n 小数点后 pos 位置的值(四舍五入)。 ROUND (n [, pos])
SIGN 返回 n 的符号(正或负)。如果 n 为正,则返回 1; n 为负,返回-1, n 为 0 返回 0。 SIGN (n)
SIN 返回参数 n 的正弦值,以弧度为单位。 SIN (n)
SINH 返回 n 的双曲正弦值,以弧度为单位。 SINH (n)
SQRT 返回 n 的平方根。 SQRT (n)
TAN 返回 n 的正切值,以弧度为单位。 TAN (n)
TANH 返回 n 的双曲正切值,以弧度为单位。 TANH (n)
UMINUS 返回 n 的负值。 UMINUS (n)

字符串函数:

函数名 说明 语法
ASCII 返回字符串 c 中第一个字节的 ASCII 值。 ASCII(c)
CHAR 返回 ASCII 值为数字 n 的字符。 CHAR (n)
CONCAT 返回位于 str1 后的 str2 联合组成的字符串。级联操作符(||)与该函数作用相同。 CONCAT (str1, str2)
LCASE 将字符串 str 中所有字符转换为小写。 LCASE(str)
LEFT 返回字符串 str 开头 n 个字符/位的字符。 LEFT (str, n)
LENGTH 返回字符串 str 中的字符数。对于大对象(LOB)类型,该函数返回对象的字节长度。 LENGTH(str)
LOCATE 返回字符串 haystack 中子字符串 needle 所在的位置。如果未找到,则返回 0。 LOCATE (haystack, needle)
LOWER 将字符串 str 中所有字符转换为小写。 LOWER (str)
LPAD 从左边开始对字符串 str 使用空格进行填充,达到 n 指定的长度。如果指定了 pattern 参数,字符串 str 将按顺序填充直到满足 n 指定的长度。 LPAD (str, n [, pattern])
LTRIM 返回字符串 str 截取所有前导空格后的值。如果定义了 remove_set, LTRIM 从起始位置移除字符串str 包含该集合中的字符,该过程持续至到达不在 remove_set 中的字符。 LTRIM (str [, remove_set])
NCHAR 返回整数 n 表示的 Unicode 字符。 NCHAR (n)
REPLACE 字符串替换 REPLACE (original_string, search_string, replace_string)
RIGHT 返回字符串 str 中最右边的 n 字符/字节。 RIGHT(str, n)
RPAD 从尾部开始对字符串 str 使用空格进行填充,达到 n 指定的长度。如果指定了 pattern 参数,字符串 str 将按顺序填充直到满足 n 指定的长度。 RPAD (str, n [, pattern])
 RTRIM 返回字符串 str 截取所有后置空格后的值。如果定义了 remove_set, RTRIM 从尾部位置移除字符串 str 包含该集合中的字符,该过程持续至到达不在 remove_set 中的字符。 RTRIM (str [,remove_set ])
SUBSTR_AFTER

返回 str 中位于 pattern 第一次出现位置后的子字符串。

如果 str 不包含 pattern 子字符串,则返回空字符串。

如果 pattern 为空字符串,则返回 str。

如果 str 或者 pattern 为 NULL,则返回 NULL。

SUBSTR_AFTER (str, pattern)
SUBSTR_BEFORE

返回 str 中位于 pattern 第一次出现位置前的子字符串。

如果 str 不包含 pattern 子字符串,则返回空字符串。

如果 pattern 为空字符串,则返回 str。

如果 str 或者 pattern 为 NULL,则返回 NULL。

SUBSTR_BEFORE (str, pattern)
SUBSTRING

返回字符串 str 从 start_position 开始的子字符串。 SUBSTRING 可以返回 start_position 起的剩余部分字符或者作为可选,返回由 string_length 参数设置的字符数。

如果 start_position 小于 0,则被视为 1。

如果 string_length 小于 1,则返回空字符串。

SUBSTRING (str, start_position [, string_length])
 TRIM

返回移除前导和后置空格后的字符串 str。截断操作从起始(LEADING)、结尾(TRAILING)或者两端(BOTH)执行。

如果 str 或者 trim_char 为空,则返回 NULL。

如果没有指定可选项, TRIM 移除字符串 str 中两端的子字符串 trim_char。

如果没有指定 trim_char,则使用单个空格(就是去空格)。

TRIM ([[LEADING | TRAILING | BOTH] trim_char FROM] str )
UCASE 将字符串 str 中所有字符转换为大写。 UCASE (str)
UNICODE 返回字符串中首字母的 UnIcode 字符码数字;如果首字母不是有效编码,则返回 NULL。 UNICODE(c)
UPPER 将字符串 str 中所有字符转换为大写。 UPPER (str)