informix sql函数使用说明大全
- 格式:doc
- 大小:41.00 KB
- 文档页数:5
【文档名称】:Informix数据库dbaccess工具执行SQL语句操作说明【背景说明】部分工程经常要对数据库进行操作,而各省客服及驻点同事对相关操作不熟悉,现整理一份实用的操作说明。
【适用范围】适用设备:Informix-9.4,Informix-11.5【文档正文】1)用informix账户登录操作系统,在开始菜单中打开“ol_实例名”。
2)直接输入dbaccess并回车。
选择Connection,然后选择Connect。
3)选择数据库实例。
一般只有一个,直接回车即可。
4)输入用户名informix,回车。
5)输入数据库密码,回车。
6)下方提示已连接。
7)直接按回车,然后选择Exit回车。
8)选择第一个Query-language回车。
9)选择Use-editor回车。
10)直接回车,默认用记事本打开编辑器。
11)将SQL语句粘贴到记事本。
12)关闭,选择保存,然后选择Run,回车,查看返回结果是否成功。
常用SQL语句:1、导出某张表。
(需注意当前用户对该目录是否有写入权限,否则会导出失败)unload to 'C:\_analarmtype' select * from _analarmtype; 导出_analarmtype表并保存到C盘根目录。
2、删除某张表。
delete from _analarmtype;3、导入某张表。
load from 'C:\ _analarmtype ' insert into _analarmtype;4、查询某张表的条目数。
select count(*) from analarmhis; 查询历史告警条目数select count(*) from ancurrentalarm; 查询当前告警条目数DBACCESS基本讲解.doc。
Informix函数在Informix数据库中,函数是一个可重复使用的代码块,用于执行特定的操作或计算。
函数可以接收参数并返回结果。
本文将介绍Informix中常用的函数,并提供相应的示例和说明。
1. 字符串函数1.1 LOWER()LOWER()函数将指定字符串中的大写字母转换为小写字母。
示例:SELECT LOWER('Hello World') AS lower_string;输出:lower_string--------------hello world1.2 UPPER()UPPER()函数将指定字符串中的小写字母转换为大写字母。
SELECT UPPER('Hello World') AS upper_string;输出:upper_string--------------HELLO WORLD1.3 LENGTH()LENGTH()函数返回指定字符串的长度。
示例:SELECT LENGTH('Hello World') AS string_length;输出:string_length--------------112. 数值函数2.1 ABS()ABS()函数返回指定数值的绝对值。
SELECT ABS(-10) AS absolute_value;输出:absolute_value-------------102.2 ROUND()ROUND()函数将指定数值四舍五入到指定的小数位数。
示例:SELECT ROUND(3.14159, 2) AS rounded_value;输出:rounded_value--------------3.142.3 MOD()MOD()函数返回两个数值相除的余数。
示例:SELECT MOD(7, 3) AS remainder;输出:remainder---------13. 日期函数3.1 CURRENTCURRENT函数返回当前日期和时间。
目录INFORMIX数据类型 (2)表达式用途 (3)表达式 (4)校正表达式 (4)条件表达式 (4)一般性CASE表达式 (4)线形CASE表达式 (5)常量表达式 (5)引号字符串表达式 (6)函数清单 (6)ABS函数 (9)DBINFO函数 (10)CARDINALITY函数 (14)长度函数 (14)DA TE函数 (15)DAY函数 (15)三角函数 (16)ACOS函数 (16)ASIN函数 (16)ATAN函数 (16)ATAN2函数 (16)COUNT函数 (17)COUNT(*)函数 (17)COUNT DISTINCT和COUNT UNIQUE函数 (17)A VG函数 (18)USER函数 (18)DBSERVERNAME 和SITENAME函数 (18)TODAY函数 (18)CURRENT函数 (18)DA TETIME (19)COLUMN (19)Concatonation 运算符 (19)DECODE函数 (19)EXP函数 (20)EXTEND函数 (20)FILETOBLOB函数和FILETOCLOB函数 (21)HEX函数 (22)IFX_ALLOW_NEWLINE函数 (22)IPX_REPLACE_MODULE函数 (22)INITCAP函数 (23)LOCOPY函数 (23)LOGN函数 (24)LOGN10函数 (24)LOTOFILE函数 (25)LOWER函数 (26)LPAD(源字符串,长度,嵌入字符串) (26)RPAD(源字符串,长度,嵌入字符串) (26)MAX(数字列|数字表达式) (26)MIN(数字列|数字表达式) (26)MDY(expr1,expr2,expr3) (26)MOD(被除数,除数) (26)MONTH(date/dtime_expr) (26)NVL(表达式1,表达式2) (27)OCTET_LENGTH(变量名|列命) (27)POW(底数,指数) (27)RANGE(数字列|数字表达式) (27)REPLACE(源字符串,匹配字符串,新字符串) (27)ROOT(被开方数,指数) (27)ROUND(数字表达式,圆整系数) (27)SIN(弧度) (27)SITENAME (27)STDEV(数字列) (27)SUBSTR(源字符串,开始位置,长度) (27)SUM(数字列|数字表达式) (28)TAN(弧度) (28)TO_CHAR(DA TE|DA TETIME,格式字符串) (28)TO_DATE(字符表达式,格式字符串) (28)TODAY (28)TRIM([LEADING|TRAILING|BOTH] trim_expr FROM source_expr) (28)TRUNC(表达式,截去系数) (29)UPPER(源字符串) (29)V ARIANCE(数字列) (29)WEEKDAY(date|dtime_expr) (29)YEAR(date|dtime_expr) (29)INFORMIX数据类型表达式用途表达式校正表达式CAST(表达式::target_data_type AS target_data_type)可以用CAST AS关键字或双冒号校正操作符(::)将一种数据类型的表达式校正为另一种数据类型的表达式。
Informix数据库SQL介绍INFORMIX SQL 介绍⼀、简介:1)、INFORMIX主要产品分为三⼤部分:; 数据库服务器(数据库核⼼); 应⽤开发⼯具; ⽹络数据库互联产品2)、数据库服务器有两种,作⽤都是提供数据操作和管理:; SE:完全基UNIX操作系统,主要针对⾮多媒体的较少⽤户数的应⽤; ONLINE:针对⼤量⽤户的联机事务处理和多媒体应⽤环境3)、应⽤开发⼯具是⽤以开发应⽤程序必要的环境和⼯具,主要也有两个系列:; 4GL:INFORMIX传统的基字符界⾯的开发⼯具,该系列的主要产品有五个,他们是I-SQL、4GL RDS、4GL C COMPILER、4GL ID和ESQL/C;; NewEra:INFORMIX最新提供的具有事件驱动能⼒、⾯向对象的基各种图形界⾯的开发⼯具。
4)、INFORMIX的⽹络数据库互联产品:提供给⽤户基多种⼯业标准的应⽤程序接⼝,通过它可以和其它遵守这些⼯业标准的数据库联接。
⼆、I-SQL菜单简介:Form可以执⾏、创建、修改、编译屏幕格式或删除已存在的屏幕格式Run执⾏某⼀已经存在的屏幕格式Modify修改指定的已经存在的屏幕格式Generate 为指定的表创建⼀个缺省的屏幕格式Compile编译⼀个制定的屏幕格式New创建特定的⽤户屏幕格式Drop删除某已经存在的格式⽂件Exit退出Form菜单Report 可以执⾏、建⽴、修改、编译、或删除报表Run执⾏某⼀报表Modify修改指定的报表Generate 为某⼀个表建⽴⼀个缺省的报表New建⽴⼀个⽤户指定的报表Compile编译指定的报表Drop删除⼀个指定的已经存在的报表Exit退出Report菜单Query-Language详见实⽤程序说明:dbaccessUser-menu 可以执⾏、建⽴或修改⽤户建⽴的菜单Run执⾏当前数据库的⽤户菜单Modify允许⽤户建⽴或修改⽤户菜单Exit退出User-menu菜单Database详见实⽤程序说明:dbaccessTable详见实⽤程序说明:dbaccessExit退出实⽤程序isqlrf(或isql)三、常⽤操作:; 创建数据库ISQL==》DATABASE==》CREATE==》输⼊新建数据库名称; 创建表ISQL==》TABLE==》CREATE==》输⼊欲建的表名==》ADD==》输⼊欲建的字段名及类型等==》EXIT==》BUILD-NEW-TABLE; ⽣成缺省表格式ISQL==》FORM==》GENERATE=》选择数据库==》输⼊表格式名称==》选择表==》TABLE-SELECTION-COMPLETE-----》编译成功==》RUN四、使⽤RDSQL(交互式查询语⾔)编写SQL语句⽅法:ISQL==》Query Langavage==》NEW==》RUN; 建⽴数据库CREATE DATABASE数据库名; 建表(格式及可选数据类型)基本格式:CREATE TABLE表名(字段名类型,字段名类型,---字段名类型);详细定义:CREATE TABLE表名(COL1INTEGER NOT NULL,COL2CHAR(2)CHECK ( COL2IN (“??”,“??”),COL3DATE DEFAULT TODAY,COL4SMALLINT UNIQUE,---字段名类型)FRAGMENT BY ROUND ROBIN (BY EXPRESSION)IN DB1,DB2EXTENT SIZE 1000 NEXT SIZE 600WITH NO LOG (LOG;BUFFERED LOG;LOG MODE ANSILOCK MODE ROW(PAGE);例1:CREATE TABLE ORDERS(ORDER_NUM INTEGERUNIQUE CONSTRAINT ORDER_NUM_UQ,ORDER_DATE DATENOT NULL CONSTRAINT ORDER_DA TE_NNDEFAULT TODAY ;例2:CREATE TABLE CUSTOMER (CUSTOMER_NUM SERIAL,FNAME CHAR(20),PRIMARY KEY (CUSTOMER_NUM)CONSTRAINT PK_CNUM);CREATE TABLE ORDERS (ORDER_NUM SERIAL,CUSTOMER_NUM INTEGER,FOREIGN KEY (CUSTOMER_NUM)REFERENCES CUSTOMERCONSTRAINT FK_CNUM);数据类型:字符型(CHAR(20)),V ARCHAR(MINSIZE, MAXSIZE)数值型(六种,DECIMAL(16,2),SMALLINT,INTEGER,SMALLFLOAT,FLOAT,SERIAL ) ⽇期型( DATE,默认格式为:MM/DD/YYYY )**要修改DATE类型的缺省格式, 只要在⽤户主⽬录的.profile⽂件中做如下说明: DBDATE=Y4MD/EXPORT DBDA TE**货币型(MONEY (8,2))其它(如:INTERV AL,DA TETIME等); 建⽴索引(必须建⽴命名索引)CREATE[ UNIQUE ]INDEX索引名ON表名(字段名)CREATE[ UNIQUE ]INDEX索引名ON表名(字段名)DISABLED;SET INDEXES索引名ENABLEDDROP INDEX索引名; 数据库权限CONNECT:访问数据库RESOURCE:允许⽤户建⽴或清除数据库中的表和索引DBA:数据库管理员,所有权限,⼀般建表者即为DBAGRANT权限TO〈PUBLIC | ⽤户名〉REVOKE权限FROM〈PUBLIC | ⽤户名〉; 检索数据库DA TABASE数据库名SELECT * FROM表名SELECT字段名,字段名FROM表名SELECT字段名,字段名+-*/新字段名FROM表名SEKECT A VG(字段) ,MIN(),MAX(),SUM(),COUNT()FROM表名WHERE⼦句 =〈〉!=< <=>>=MATCHES* 0多个? 单个[ ] 单个字符或⼀个范围\ 转义下⼀个字符LIKE %:0--多个 _ 单个\ 转义下⼀个特殊字符ORDER BY(DESC)时间函数: DAY MDY MONTH WEEKDAY YEAR DATE CURRENT其它函数:LENGTH USER CURRENT TODAY从多个表中查找, SELECT嵌套字段名不同可直接写出,若不同表中有相同字段名,则前缀表名SELECT表⼀.字段名FROM表⼀, 表⼆向表中插⼊数据INSERT INTO表名 [ 列1, 列2。
informix的常用SQL语句1、创建数据库eg1. 创建不记录日志的库testdb,参考语句如下:CREATE DATABASE testdb;eg2. 创建带缓冲式的记录日志的数据库testdb(SQL语句不一定在事务之中,拥有者名字不被用于对象的解析),参考语句如下:CREATE DATABASE testdb WITH BUFFERED LOG;eg3. 创建无缓冲式的记录日志的数据库testdb(SQL语句不一定在事务之中,拥有者名字不被用于对象的解析),参考语句如下:CREATE DATABASE testdb WITH LOG;eg4. 创建ANSI的数据库(记录日志时无缓冲,SQL总在事务之中,拥有者名字被用于对象的解析),参考语句如下:CREATE DATABASE testdb WITH LOG MODE ANSI;2、创建普通数据表普通数据表又被称为持久数据表,它在system catalog里注册。
一个普通数据表可对多个sessi on和connection。
创建时可以指定dbspace。
eg1、如下语句创建了一个集团信息表cti_vccinfo:create table cti_vccinfo(vccid CHAR(6) not null,vccname VARCHAR(255),effective INTEGER default0not null,agentmax INTEGER default0not null,ivrmax INTEGER default0not null,updatekey VARCHAR(30),primary key(vccid) constraint PK_CTI_VI);3、创建临时数据表临时数据表不在system catalog里注册。
一个临时数据表只对对应的某个session或connectio n可见,在对应的session或connection结束时被自动清除。
一、内部函数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])返回经过调整的日期或日期时间值To_char函数将datetime和date值转化为字符值。
informixsql函数使用说明大全informix sql函数使用说明大全一、内部函数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])返回经过调整的日期或日期时间值select current year to second from systablesTo_char函数将datetime和date值转化为字符值。
一些Informix SQL函数的用法一、内部函数1、内部合计函数1)COUNT(*)返回行数2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的个数3)SUM(COLNAME/EXPRESSION)返回指定列或表达式的数值和;4)SUM(DISTINCT COLNAME)返回指定列中唯一值的和5)A VG(COLNAME/EXPRESSION)返回指定列或表达式中的数值平均值6)A VG(DISTINCT COLNAME)返回指定列中唯一值的平均值7)MIN(COLNAME/EXPRESSION)返回指定列或表达式中的数值最小值8)MAX(COLNAME/EXPRESSION)返回指定列或表达式中的数值最大值2、日期与时间函数1)DAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当月几号2)MONTH(DATE/DATETIME EXPRESSION)返回指定表达式中的月份3)YEAR(DA TE/DATETIME EXPRESSION)返回指定表达式中的年份4)WEEKDAY(DA TE/DA TETIME 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(DA TE/DA TETIME EXPRESSION)FIRST TO LAST 返回表达式代表的日期时间值11)INTERV AL(DA TE/DA TETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值12)EXTEND(DATE/DATETIME EXPRESSION,[first to last])返回经过调整的日期或日期时间值例子1、和UNITS合用,指定日期或时间单位(year,month,day,hour,minute,second,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.000000004)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.56let tmp_float = TRUNC(4.555,2) --4.554、指数与对数函数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)V ARIANCE(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=DBSERVERNAME2、SITENAME返回数据库服务器名let tmp_char=SITENAME说明:两者功能相同;3、DBINFO(‘SPECIAL_KEYWORD')返回只关键字值例子1:返回数据中每个表的DBSPACE名称select dbinfo('dbspace',partnum),tabname from systableswhere 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;Date Manipulation (日期操作)One of the more difficult concepts in Informix's handling of date and time values concerns the use of the variables in arithmetic or relational expressions. You can add or subtract DA TE and DA TETIME variables from each other. You can add or subtract an INTERV AL to a DATE or DA TETIME. Table 1 shows the results of different types of operations on DA TE and DA TETIME values.Notice that it's always okay to subtract one DA TE or DATETIME value from another, as shown here:CURRENT - "07/01/1950" = INTERV AL (my age)"12/25/2000" – CURRENT = INTERV AL (how long till Xmas?)In such a case, the result is always an INTERV AL variable. It would make no sense to add two DA TE or DATETIME values together. What could such an addition represent?UNITS KeywordWhen working with INTERV AL values, sometimes it is necessary to specify the precision with which you are dealing. For example, suppose you have the following field defined:lead_time INTERV AL DAY to DAYTo add 10 days to the lead time you could use a SQL statement like this:SELECT lead_time + INTERV AL(10) DAY to DAYFROM orders;You could achieve the same results using the UNITS keyword:SELECT lead_time + 10 UNITS DAYFROM orders;Like most other programming languages, SQL often allows you to achieve the same ends with different statements. Sometimes the choice is one of personal style. Other times, one format fits in better with a structured style of code writing than another format does.FunctionsThere are several built-in functions that affect date and time calculations. They can apply to either DA TE or DATETIME values, with some exceptions.TODAYThe TODAY function returns a DA TE data value representing the current date. For example, you could execute a SQL function like this:UPDATE member SET change_date = TODAYWHER member_number = 12345;CURRENTThe CURRENT function is similar to the TODAY function, except it returns a DATETIME value. Without specific qualifiers, the default is YEAR to FRACTION(3). You can change the precision by using the same YEAR to FRACTION qualifiers as you use for DATETIMES. Thus, this would be legal:SELECT * from memberWHERE elapsed_time < CURRENT YEAR to DAYDATEThe DATE function takes as input a non-DA TE value such as CHAR, DATETIME, or INTEGER and returns the corresponding DATE value. For example, the following SQL translates a CHARACTER value to a DATE:SELECT * from memberWHERE enrollment_date > DA TE('01/01/99');DAYThis function returns an integer representing the day of the month. Here's an example:SELECT * from memberWHERE DAY(enrollment_date) > DAY(CURRENT);MONTHThis performs like the DAY function except it returns an integer between 1 and 12 representing the month:SELECT * from memberWHERE enrollment_date > MONTH('01/01/99');WEEKDAYThis returns an integer representing the day of the week, with 0 being Sunday and 6 being Saturday:SELECT * from memberWHERE WEEKDAY(enrollment_date) > WEEKDAY(CURRENT);YEARThis function is like the ones above, only it returns a four-digit integer representing the year.EXTENDThis function allows you to use different precisions in a DATETIME than you have specified in the declaration of the variable. It uses the same FIRST to LAST syntax as the DATETIME variables. This function is used to adjust the precision of a DA TETIME variable to match the precision of an INTERV AL that you are using in a calculation. If the INTERV AL value has fields that are not part of the DATETIME value that you are using in a calculation, use the EXTEND function to adjust the precision of the DA TETIME. EXTEND can either increase or decrease the precision of a DATETIME, depending upon the FIRST and LAST values.Suppose myvariable is declared as DA TETIME YEAR to DAY. If you want to add or subtract an INTERV AL defined as MINUTE, you first have to extend the DATETIME as follows:SELECT EXTEND(myvariable, YEAR to MINUTE) –INTERV AL(5) MINUTE to MINUTEFROM memberThe resulting value will be DATETIME YEAR to MINUTE;MDYThe MDY function converts three-integer values into a DATE format. The first integer is the month and must evaluate to an integer in the range 1–12. The second integer is the day and must evaluate to a number in the range from 1 to however many days are in the particular month (28–31). The third expression is the year and must be a four-digit integer. Thus, the following MDY functions would each be valid:MDY(7,1,1950)returns a DATE of "07/01/50"MDY(MONTH(TODAY), 1, YEAR(TODAY))returns a DATE equal to the first day of the current month in the current yearInformix has extensive capabilities for manipulating dates and times, which can make for long and complex SQL statements. Using the three time-related data types and the time-related functions and keywords, you can accomplish almost any type of manipulation of time data. Unfortunately, getting there may be cryptic and painful. If you regularly do extensive date and time manipulation, you should understand all of the intricacies of these data structures.Have fun!。
informix sql函数使用说明大全一、内部函数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])返回经过调整的日期或日期时间值To_char函数将datetime和date值转化为字符值。
To_date函数将字符值转化为datetime类型的值。
例to_date(“1978-10-0710:00” ,”%Y-%m-%d %H:%M)例子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.000000004)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.56let tmp_float = trunc(4.555,2) --4.554、指数与对数函数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 返回并在一起的字符;8、基数函数:1)cardinality(仅适用IDS)函数对集合包含的元素数目计数。
智能大对象函数,(仅适用与IDS)filetoblob( ),将文件复制到BLOB列中filetoclob( ),将文件复制到CLOB列中locopy( ),将BLOB或CLOB类型的数据复制到另一个BLOB或CLOB列中lotofile( ),将BLOB或CLOB复制到文件中9、字符串处理函数:lower,将字符串中每个大写字母转换为小写字母upper,将字符串中每个小写字母转换为大写字母initcap,将字符串中每个词的首写字母转换成大写replace,将字符串中的某一组字符转换成其他字符,例replace(col,”each”,”eve”)substr,返回字符串中的某一部分,例substr(col,1,2)substring,返回字符串中的某一部分,例substring(col,from 1 to 4)lpad,使用lpad函数已用重复次数达到必要次数的字符序列在左边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。
举例:字段col 为char(15)类型,select lpad(col,21,”_”) from tab_name则显示为在col前加上六个_。
Rpad,使用rpad函数已用重复次数达到必要次数的字符序列在右边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。
举例:字段col为char(15)类型,select rpad(col,21,”_”) from tab_name则显示为在col后边加上六个_。
10、其他函数:hex,返回表达式的十六进制数round,返回表达式的四舍五入值trunc,返回表达式的截断值length,计算表达式的长度user,返回执行查询的用户的用户名(登陆帐户名)today,返回当前系统日期dbservername,返回数据库服务器的名称,同sitenamedbinfo,返回数据库的相关信息decode,函数来将一个具有一个值的表达式转换为另一个值decode(test,a,a_value,b,b_value,c,c_value……),decode函数不支持TEXT和BYTE类型。
Nvl,来将求值为空的表达式转化为另一个想要指定的值。
另外还可以在select语句中使用存储过程,如select spl($test) from tab_name二、IDS内部函数1、DBSERVERNAME 返回数据库服务器名let tmp_char=DBSERVERNAME2、SITENAME 返回数据库服务器名let tmp_char=SITENAME说明:两者功能相同;3、DBINFO(‘SPECIAL_KEYWORD')返回只关键字值例子1:返回数据中每个表的DBSPACE名称select dbinfo('dbspace',partnum),tabname from systableswhere 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;三、其它本函數庫共有38 個函數目前支持的Informix 版本為ODS 7.x、SE 7.x 與Universal Server (IUS) 9.x 三種。
在ODS 7.x 的版本中,完全支持所有的資料類型,而在IUS 9.x 中,不支持SLOB 與CLOB 二種類型。
要在Web Server 上安裝Informix Client 端,在編譯PHP 之前(configure 之前),要先設好IFX_LIBDIR、IFX_LIBS 及IFX_INCDIR 三種環境變量,若是9.x 版尚要配置HAVE_IFX_IUS 環境變量。
同時在配置時要加入--with_informix=yes 的選項。
ifx_connect: 打開Informix 服務器連接。
ifx_pconnect: 打開Informix 服務器持續連接。
ifx_close: 關閉Informix 服務器連接。
ifx_query: 送出一個query 字符串。
ifx_prepare: 准備query 字符串。
ifx_do: 執行已准備query 字符串。