Informix SQL函数用法
Informix SQL 函数用法
2024年5月7日14:53:55
informix 获取当前时间,时间格式
-- 默认 YYYY - MM - DD
select today from dual;
-- 格式 YYYY - MM - DD HH:mm:ss:000
select current from dual;
-- 格式 YYYY/MM/DD
select to_char(current,'%Y/%m/%d') from dual;
-- 格式 HHmmss
select to_char(current, '%H%M%S') from dual;
-- 格式 yy-mm-dd
select TO_CHAR(today,'%y-%m-%d') from dual;
-- 格式 Monday August mm YYYY
select TO_CHAR(today,'%A %B %d %Y') from dual;
select YEAR(today), MONTH(today) from dual;
-- 当前月份往后推3个月
select to_char(ADD_MONTHS(current, 3), '%Y%m') from dual;
start_time='2020-08-28 22:12:13'
extend(start_time,year to month)='2020-08'
extend(start_time,hour to hour)='22'
to_char,to_date('20200828221543','%Y%m%d%H%M%S')
2024-04-19
一、内部函数
1、内部合计函数
1)COUNT(*)
返回行数
2)COUNT(DISTINCT COLNAME)
返回指定列中唯一值的个数
3)SUM(COLNAME/EXPRESSION)
返回指定列或表达式的数值和;
4)SUM(DISTINCT COLNAME)
返回指定列中唯一值的和
5)AVG(COLNAME/EXPRESSION)
返回指定列或表达式中的数值平均值
6)AVG(DISTINCT COLNAME)
返回指定列中唯一值的平均值
7)MIN(COLNAME/EXPRESSION)
返回指定列或表达式中的数值最小值
8)MAX(COLNAME/EXPRESSION)
返回指定列或表达式中的数值最大值
2、日期与时间函数
1)DAY(DATE/DATETIME EXPRESSION)
返回指定表达式中的当月几号
2)MONTH(DATE/DATETIME EXPRESSION)
返回指定表达式中的月份
3)YEAR(DATE/DATETIME EXPRESSION)
返回指定表达式中的年份
4)WEEKDAY(DATE/DATETIME EXPRESSION)
返回指定表达式中的当周星期几
5)DATE(NOT DATE EXPRESSION)
返回指定表达式代表的日期值
6)TODAY
返回当前日期的日期值
7)CURRENT[first to last]返回当前日期的日期时间值
8)COLNAME/EXPRESSION UNITS PRECISION
返回指定精度的指定单位数
9)MDY(MONTH,DAY,YEAR)
返回标识指定年、月、日的日期值
10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST
返回表达式代表的日期时间值 11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST
返回表达式代表的时间间隔值
12)EXTEND(DATE/DATETIME EXPRESSION,[first to last])
返回经过调整的日期或日期时间值
例子 1、和 UNITS 合用,指定日期或时间单位(year,month,day,hour,minute,seond,fraction): let tmp_date = today + 3 UNITS day
例子 2、let tmp_date = MDY(10,30,2002)– 2002-10-30 例子 3、let tmp_date = today + interval(7) day to day –当前时间加上 7 天;
注:该功能与 1 相似; 例子 4、EXTEND 转换日期或日期时间值 let tmp_inthour = extend(datetime1,hour to hour)
3、代数函数 1)ABS(COLNAME/EXPRESSION): 取绝对值 2)MOD(COLNAME/EXPRESSION,DIVISOR) 返回除以除数后的模(余数)
3)POW(COLNAME/EXPRESSION,EXPONENT) 返回一个值的指数冥 例子:let tmp_float = pow(2,3)–8.00000000
4)ROOT(COLNAME/EXPRESSION,[index]) 返回指定列或表达式的根值
5)SQRT(COLNAME/EXPRESSION) 返回指定列或表达式的平方根值
6)ROUND(COLNAME/EXPRESSION,[factor]) 返回指定列或表达式的圆整化值
7)TRUNC(COLNAME/EXPRESSION,[factor]) 返回指定列或表达式的截尾值
说明:上两者中 FACTOR 指定小数位数,若不指定,则为 0;若为负数,则整化到小数点左边;
注:ROUND 是在指定位上进行 4 舍 5 入; TRUNC 是在指定位上直接截断; let tmp_float = round(4.555,2) –4.56 let tmp_float = trunc(4.555,2) –4.55
4、指数与对数函数
1)EXP(COLNAME/EXPRESSION) 返回指定列或表达式的指数值
2)LOGN(COLNAME/EXPRESSION) 返回指定列或表达式的自然对数值
3)LOG10(COLNAME/EXPRESSION) 返回指定列或表达式的底数位 10 的对数值
5、三角函数
1)COS(RADIAN EXPRESSION) 返回指定弧度表达式的余弦值
2)SIN(RADIAN EXPRESSION) 正弦
3)TAN(RADIAN EXPRESSION) 正切
4)ACOS(RADIAN EXPRESSION) 反余弦
5)ASIN(RADIAN EXPRESSION) 反正弦
6)ATAN(RADIAN EXPRESSION) 反正切
7)ATAN2(X,Y)返回坐标(X,Y)的极坐标角度组件
6、统计函数
1)RANGE(COLNAME) 返回指定列的最大值与最小值之差 = MAX(COLNAME)-MIN(COLNAME)
2)VARIANCE(COLNAME) 返回指定列的样本方差;
3)STDEV(COLNAME) 返回指定列的标准偏差;
7、其他函数
1)USER
返回当前用户名
2)HEX(COLNAME/EXPRESSION)
返回指定列或表达式的十六进制值
3)LENGTH(COLNAME/EXPRESSION)
返回指定字符列或表达式的长度
4)TRIM(COLNAME/EXPRESSION)
删除指定列或表达式前后的字符
5)COLNAME/EXPRESSION || COLNAME/EXPRESSION
返回并在一起的字符;
二、IDS 内部函数
1、DBSERVERNAME
返回数据库服务器名 let tmp_char=DBSERVERNAME
2、SITENAME
返回数据库服务器名 let tmp_char=SITENAME
说明:两者功能相同;
3、DBINFO(‘SPECIAL_KEYWORD’)
返回只关键字值
例子 1:返回数据中每个表的 DBSPACE 名称
select dbinfo(‘dbspace’,partnum),tabname from systables where tabid>99 and tabtype=’T'(OK)
例子 2:返回任何表中插入的最后一个 SERIAL 值
select dbinfo(’sqlca.sqlerrd1′) from systables where tabid = 1
例子 3:返回最后一个 SELECT,INSERT,UPDATE,DELETE 或 EXECUTE PROCEDURE 语句处理的行数;
select dbinfo(’sqlca.sqlerrd2′) from systables where tabid=1;