Sybase iq数据库函数整理文档Word文档下载推荐.docx
《Sybase iq数据库函数整理文档Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Sybase iq数据库函数整理文档Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。
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时间点,包含年、月、日、小时、分钟、秒,以及秒的小数部分。
日必须为非零值。
TIMESTAMP值需要8个字节的存储空间。
1.2日期和时间格式
以下是用于指定时间的有效而明确的字符串:
21:
35--24小时制(如果未指定am或pm)
10:
00pm--已指定pm,因此为12小时制
00--不带pm,因此是指10:
00am
23:
32.234--包括秒以及秒的小数部分
在向数据库发送时间是,小时、分钟和秒必须用冒号分隔开(格式为hh:
mm:
ss:
sss),但可以显示在字符串中的任意位置。
可以选择用句点将秒与秒的小数部分相互分隔开,如hh:
ss.sss。
将日期以字符串形式发送到数据库时,其到日期数据类型的转换是自动发生的。
您可以通过下面两种方式之一提供字符串:
•以yyyy/mm/dd或yyyy-mm-dd格式的字符串形式,其格式由数据库明确解释
二、函数
1.3Rank窗口化集合函数分区函数的用法
selectrank()over(partitionbydept_idorderbysalary)fromemp1;
Partitionby后一定要加orderby
1.4Now函数
selectnow(*)fromemp1
1.5ARGN函数[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.6ARGN函数[Miscellaneous]
返回字符串表达式中第一个字节的整数ASCII值。
ASCII(string-expression)
SELECTASCII('
Z'
)FROMiq_dummy
1.7AVG函数[Aggregate]
为一组行计算数值表达式的平均值,或计算一组唯一值的平均值。
AVG(numeric-expression|DISTINCTcolumn-name)
1.8ABIGNTTOHEX函数[Datatypeconversion]
在VARCHAR(16)中返回十进制整数的十六进制等效数字。
BIGINTTOHEX(integer-expression)
下面的语句返回值0000000000000009:
SELECTBIGINTTOHEX(9)FROMiq_dummy;
下面的语句返回值FFFFFFFFFFFFFFF7:
SELECTBIGINTTOHEX(-9)FROMiq_dummy;
1.9BIT_LENGTH函数[String]
返回字符串中的位数,即字符数*8
selectBIT_LENGTH(name),namefromemp1;
1.10BYTE_LENGH函数[String]
返回字符串中的字节数。
BYTE_LENGTH(string-expression)
1.11CAST函数[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.12CEIL函数[Numeric]
返回大于或等于指定表达式的最小整数。
1.13ceiling函数[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_dummy
1.14CHAR函数[String]
返回含数字所表示的ASCII值的字符。
CHAR(integer-expression)
下面的语句返回值“Y”:
SELECTCHAR(89)FROMiq_dummy
下面的语句返回值“S”:
SELECTCHAR(83)FROMiq_dummy
对于值大于255或小于0的整数表达式,CHAR返回NULL。
1.15CHAR_LENGTH函数[String]
返回字符串中的字符数。
CHAR_LENGTH(string-expression)
下面的语句返回值8:
SELECTCHAR_LENGTH('
Chemical'
)FROMiq_dummy;
1.16CHARINDEX函数[String]
返回一个字符串在另一个字符串中第一次出现的位置。
CHARINDEX(string-expression1,string-expression2)
SELECTemp_lname,emp_fnameFROMemployeeWHERECHARINDEX('
K'
emp_lname)=1
selectcharindex(upper('
a'
),name),namefromemp1;
1.17COALESCE函数[Miscellaneous]
返回列表中的第一个非空表达式。
COALESCE(expression,expression[,...])
1.18COL_NAME函数[System]
返回列名。
COL_NAME(table-id,column-id[,database-id])
1.19CONNECTION_PROPERTY函数[System]
以字符串形式返回给定连接属性的值。
CONNECTION_PROPERTY({integer-expression1|string-expression}
...[,integer-expression2])
SELECTconnection_property('
PrepStmt'
)FROMtest;
1.20CONVERT函数[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.21DATALENGTH函数[System]
返回表达式的长度(以字节为单位)。
DATALENGTH(expression)
下面的语句返回值35,即company_name列中最长的字符串:
SELECTMAX(DATALENGTH(company_name))FROMcustomer
1.22DATE函数[Dateandtime]
将表达式转换为日期,并删除任何小时、分钟或秒。
DATE(expression)
下面的语句返回值1988-11-26作为日期。
SELECTDATE('
1988-11-2621:
20:
53'
1.23DATEADD函数[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'
1.24DATEDIFF函数[Dateandtime]
返回两个日期之间的时间间隔。
DATEDIFF(date-part,date-expression1,date-expression2)
date-expression1间隔的开始日期。
从date-expression-2中减去该值,以返回两个参数之间日期分量的数量。
date-expression2时间间隔的结束日期。
从此值中减去date-expression1以返回两个参数间的日期分量的数量。
下面的语句返回1:
SELECTDATEDIFF(hour,'
4:
00AM'
'
5:
50AM'
下面的语句返回102:
SELECTDATEDIFF(month,'
1995/11/15'
下面的语句返回0:
SELECTDATEDIFF(day,'
00'
59'
)FROMiq_dummy;
下面的语句返回4:
1999/07/1900:
1999/07/23:
1999/07/19'
1999/07/23'
1999/08/23'
1.25DATEFORMAT函数[Dateandtime]
以指定的格式返回表示日期表达式的字符串。
DATEFORMAT(datetime-expression,string-expression)
datetime-expression要转换的日期/时间。
必须是日期、时间、时间戳或字符串。
string-expression转换后的日期格式。
下面的语句返回类似“Jan01,1989”的字符串值:
SELECTDATEFORMAT(start_date,'
Mmmdd,yyyy'
)fromemployee;
下面的语句返回字符串“Feb19,1987”。
SELECTDATEFORMAT(CAST(‘1987/02/19’ASDATE),‘MmmDd,yyyy’)FROMiq_dummy
1.26DATEPART函数[Dateandtime]
返回日期/时间值的指定部分的整数值。
date-part要返回的日期分量。
有关允许的日期分量的完整列表,请参见“日期分量”(第235页)。
date-expression要返回其日期分量的日期。
日期必须包含date-part字段。
SELECTDATEPART(month,'
1.27DATENAME函数[Dateandtime]
以字符串形式返回日期/时间值中指定部分的名称(如月份“June”)
DATENAME(date-part,date-expression)
date-part要指定的日期分量。
date-expression要返回其日期分量名称的日期。
日期必须包含请求的date-part。
下面的语句返回值May:
SELECTdatename(month,'
1.28DATETIME函数[Dateandtime]
将表达式转换成时间戳。
DATETIME(expression)
expression要转换的表达式。
表达式通常是字符串。
可能会报告转换错误。
SELECTDATETIME('
1998-09-0912:
12:
12.000'
)FROMiq_dummy
返回含有值1998-09-0912:
12.000的时间戳:
1.29DAY函数[Dateandtime]
返回1到31之间的一个整数,该整数对应于指定日期中的每月几号。
DAY(date-expression)
下面的语句返回值12:
SELECTDAY('
2001-09-12'
1.30DAYNAME函数[Dateandtime]
返回指定日期中的星期几的名称。
下面的语句返回值Saturday:
SELECTDAYNAME('
1.31DAYS函数[Dateandtime]
返回自任意开始日期以来的天数,返回两个指定日期之间的天数,或者将指定的integer-expression数量的天添加到给定日期中。
语法
DAYS(datetime-expression)|(datetime-expression,datetime-expression)|(datetime-expression,integer-expression)
参数datetime-expression日期和时间。
integer-expression要添加到datetime-expression中的天数。
如果integer-expression是负数,则从日期/时间中减去相应的天数。
如果提供整数表达式,必须将datetime-expression显式转换为日期。
DAYS忽略小时、分钟和秒。
示例下面的语句返回整数值729948:
SELECTDAYS('
1998-07-1306:
07:
12'
下面的语句返回整数值-366,这是两个日期之间的差值:
1997-07-1210:
下面的语句返回值1999-07-14:
SELECTdays(cast('
2009-01-03'
asdate),3),days(date('
),3)fromiq_dummy
1.32DB_ID函数[System]
返回数据库ID号。
DB_ID([database-name])
database-name包含数据库名的字符串表达式。
如果database-name是字符串常量,则它必须用引号引起来。
如果未提供database-name,则返回当前数据库的ID号。
如果asiqdemo是唯一正在运行的数据库,则下面的语句返回值0:
SELECTDB_ID('
asiqdemo'
),DB_ID()FROMiq_dummy
1.33DB_NAME函数[System]
返回数据库名。
DB_NAME([database-id])
database-id数据库的ID。
database-id必须是数值表达式。
示例下面的语句在对样本数据库执行时返回数据库名asiqdemo。
SELECTDB_NAME(0)FROMiq_dummy
1.34DB_PROPERTY函数[System]
返回给定属性的值。
DB_PROPERTY({property-id|property-name}[,{database-id|database-name}])
property-id数据库属性ID。
property-name数据库属性名称。
database-id数据库ID号,由DB_ID返回。
通常情况下,使用数据库名称。
database-name数据库的名称,由DB_NAME返回。
下面的语句返回当前数据库的页大小(以字节为单位)。
SELECTDB_PROPERTY('
PAGESIZE'
1.35DEGREES函数[Numeric]
将数字从弧度转换为度数
DEGREES(numeric-expression)
参数numeric-expression以弧度表示的角度。
示例下面的语句返回值29.793805:
SELECTDEGREES(0.52)FROMiq_dummy
1.36DIFFERENCE函数[String]
比较两个字符串,评估它们之间的相似性,并返回0到4之间的一个值。
最佳匹配值是4。
DIFFERENCE(string-expression1,string-expression2)
参数string-expression1要比较的第一个字符串。
string-expression2要比较的第二个字符串。
Selectdifference('
huyong'
),difference('
jiayong'
),difference('
jiahen