您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Sybase iq数据库函数整理文档
Sybaseiq数据库函数总结建数据库脚本:CREATEDATABASE'e:\ProgramFiles\Sybase\ASIQ-12_7\myiq\myiq.db'TRANSACTIONLOGONCOLLATION'936ZHO'PAGESIZE4096JAVAONJCONNECTONCASERESPECTPASSWORDCASERESPECTIQPATH'myiq.iq'IQSIZE100IQPAGESIZE131072TEMPORARYPATH'myiq.iqtmp'TEMPORARYSIZE10SETOPTIONpublic.MINIMIZE_STORAGE=ON;这个可以在数据库中设置一下,这样减轻字段存储空间的压力--select*fromall_ind_columnswheretable_name='TB_CM_SERV'andtable_owner='IODATA_GZ';数据文件的使用率:Createproceduremyspace()BeginDeclaremtunsignedbigint;Declaremuunsignedbigint;Declarettunsignedbigint;Declaretuunsignedbigint;Callsp_iqspaceused(mt,mu,tt,tu);Selectcast(mt/1024asunsignedbigint)asmainMB,Cast(mu/1024asunsignedbigint)asmainusedMB,Mu*100/mtasmainPerCent,Cast(tt/1024asunsignedbigint)astempMB,Cast(tu/1024asunsignedbigint)astempusedMB,Tu*100/ttastempPerCent;End一、数据类型1.1日期及时间数据类型DATE日历日期,如年、月、日。年可以从0001到9999。日必须是非零值,以便最早日期为0001-01-01。DATE值需要4个字节的存储空间。DATETIME一个以TIMESTAMP的形式实现的域。之所以提供DATETIME,主要是为了与AdaptiveServerEnterprise兼容。有关例外,请参见“字符串到日期时间转换的兼容性”。SMALLDATETIME一个以TIMESTAMP的形式实现的域。TIME一天中的时间,包含小时、分钟、秒,以及秒的小数部分。分数存储为6位小数。TIME值需要8个字节的存储空间。(ODBC标准将TIME数据类型限制为精确到秒。因此,不要在要求的精度比秒更高的WHERE子句比较中使用TIME数据类型。)TIMESTAMP时间点,包含年、月、日、小时、分钟、秒,以及秒的小数部分。分数存储为6位小数。日必须为非零值。TIMESTAMP值需要8个字节的存储空间。1.2日期和时间格式以下是用于指定时间的有效而明确的字符串:21:35--24小时制(如果未指定am或pm)10:00pm--已指定pm,因此为12小时制10:00--不带pm,因此是指10:00am10:23:32.234--包括秒以及秒的小数部分在向数据库发送时间是,小时、分钟和秒必须用冒号分隔开(格式为hh:mm:ss:sss),但可以显示在字符串中的任意位置。可以选择用句点将秒与秒的小数部分相互分隔开,如hh:mm:ss.sss。将日期以字符串形式发送到数据库时,其到日期数据类型的转换是自动发生的。您可以通过下面两种方式之一提供字符串:•以yyyy/mm/dd或yyyy-mm-dd格式的字符串形式,其格式由数据库明确解释二、函数1.1Rank窗口化集合函数分区函数的用法selectrank()over(partitionbydept_idorderbysalary)fromemp1;Partitionby后一定要加orderby1.2Now函数selectnow(*)fromemp11.3ARGN函数[Miscellaneous]从参数列表中返回所选参数。语法:ARGN(integer-expression,expression[,...])SELECTARGN(4,1,2,3,7,5,6)FROMiq_dummy;SELECTARGN(4,'sdf','asd','sdfsdrg','asrewryry','345sdfs')FROMiq_dummy;1.4ARGN函数[Miscellaneous]返回字符串表达式中第一个字节的整数ASCII值。语法:ASCII(string-expression)SELECTASCII('Z')FROMiq_dummy1.5AVG函数[Aggregate]为一组行计算数值表达式的平均值,或计算一组唯一值的平均值。语法:AVG(numeric-expression|DISTINCTcolumn-name)1.6ABIGNTTOHEX函数[Datatypeconversion]在VARCHAR(16)中返回十进制整数的十六进制等效数字。语法:BIGINTTOHEX(integer-expression)下面的语句返回值0000000000000009:SELECTBIGINTTOHEX(9)FROMiq_dummy;下面的语句返回值FFFFFFFFFFFFFFF7:SELECTBIGINTTOHEX(-9)FROMiq_dummy;1.7BIT_LENGTH函数[String]返回字符串中的位数,即字符数*8selectBIT_LENGTH(name),namefromemp1;1.8BYTE_LENGH函数[String]返回字符串中的字节数。语法:BYTE_LENGTH(string-expression)1.9CAST函数[Datatypeconversion]返回转换为提供的数据类型的表达式的值。语法:CAST(expressionASdatatype)下面的函数可确保使用字符串作为日期:CAST('2000-10-31'ASDATE)计算表达式1+2的值,并将结果转换为单字符字符串(即数据服务器分配的长度):CAST(1+2ASCHAR)可以使用CAST函数缩短字符串:SELECTCAST(lnameASCHAR(5))FROMcustomer用法如果未指定字符串类型的长度,SybaseIQ将选择适当的长度。如果没有为十进制转换指定精度和标度,则数据库服务器将选择适当的值。如果针对NULL到NUMERIC的显式转换既未指定精度也未指定标度,则缺省值为NUMERIC(1,0)。例如,SELECTCAST(NULLASNUMERIC)A,CAST(NULLASNUMERIC(15,2))B说明为:ANUMERIC(1,0)BNUMERIC(15,2)1.10CEIL函数[Numeric]返回大于或等于指定表达式的最小整数。1.11ceiling函数[Numeric]返回一个数字的上限(不小于的最小整数)。与ceil为同义词。语法:CEILING(numeric-expression)下面的语句返回值60.00000:SELECTCEILING(59.84567)FROMiq_dummy下面的语句返回值123:SELECTCEILING(123)FROMiq_dummy下面的语句返回值124.00:SELECTCEILING(123.45)FROMiq_dummy下面的语句返回值-123.00:SELECTCEILING(-123.45)FROMiq_dummy1.12CHAR函数[String]返回含数字所表示的ASCII值的字符。语法:CHAR(integer-expression)下面的语句返回值“Y”:SELECTCHAR(89)FROMiq_dummy下面的语句返回值“S”:SELECTCHAR(83)FROMiq_dummy对于值大于255或小于0的整数表达式,CHAR返回NULL。1.13CHAR_LENGTH函数[String]返回字符串中的字符数。语法:CHAR_LENGTH(string-expression)下面的语句返回值8:SELECTCHAR_LENGTH('Chemical')FROMiq_dummy;1.14CHARINDEX函数[String]返回一个字符串在另一个字符串中第一次出现的位置。语法:CHARINDEX(string-expression1,string-expression2)SELECTemp_lname,emp_fnameFROMemployeeWHERECHARINDEX('K',emp_lname)=1selectcharindex(upper('a'),name),namefromemp1;1.15COALESCE函数[Miscellaneous]返回列表中的第一个非空表达式。语法:COALESCE(expression,expression[,...])1.16COL_NAME函数[System]返回列名。语法:COL_NAME(table-id,column-id[,database-id])下面的语句返回值“Y”:SELECTCHAR(89)FROMiq_dummy下面的语句返回值“S”:SELECTCHAR(83)FROMiq_dummy对于值大于255或小于0的整数表达式,CHAR返回NULL。1.17CONNECTION_PROPERTY函数[System]以字符串形式返回给定连接属性的值。语法:CONNECTION_PROPERTY({integer-expression1|string-expression}...[,integer-expression2])SELECTconnection_property('PrepStmt')FROMtest;1.18CONVERT函数[Datatypeconversion]返回转换成提供的数据类型的表达式。语法:CONVERT(data-type,expression[,format-style])0、9表示都是含世纪的,其他如1、2都是可以不含世纪的。SELECTCONVERT(CHAR(20),order_date,4),CONVERT(CHAR(20),order_date,104),order_dateFROMsales_order;1.19DATALENGTH函数[System]返回表达式的长度(以字节为单位)。语法:DATALENGTH(expression)下面的语句返回值35,即company_name列中最长的字符串:SELECTMAX(DATALENGTH(company_name))FROMcustomer1.20DATE函数[Dateandtime]将表达式转换为日期,并删除任何小时、分钟或秒。语法:DATE(expression)下面的语句返回值1988-11-26作为日期。SELECTDATE('1988-11-2621:20:53')FROMiq_dummy1.21DATEADD函数[Dateandtime]返回通过将指定数量的指定日期分量添加到日期中而生成的日期。语法:DATEADD(date-part,numeric-expression,date-expression)datepart要添加到日期中的日期分量。numeric-expression要添加到日期中的日期分量的数量。numeric-expression可以是任何数值类型;值截断为整数。date-expression要修改的日期。下面的语句返回值1995-11-0200:00:00.000:SELECTDATEADD(month,102,'1987/05/02')FROMiq_dummy1.22DATEDIFF函数[Dateandtime]返回两个日期之间的时间间隔。语法:DATEDIFF(date-part,date-expression1,date-expression2)date-expres
本文标题:Sybase iq数据库函数整理文档
链接地址:https://www.777doc.com/doc-6078162 .html