Sybaseiq数据库函数整理文档docx.docx
- 文档编号:9852125
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:34
- 大小:68.76KB
Sybaseiq数据库函数整理文档docx.docx
《Sybaseiq数据库函数整理文档docx.docx》由会员分享,可在线阅读,更多相关《Sybaseiq数据库函数整理文档docx.docx(34页珍藏版)》请在冰豆网上搜索。
Sybaseiq数据库函数整理文档docx
Sybaseiq数据库函数总结
建数据库脚木:
CREATEDATABASE'eAProgramFiles\Sybase\ASIQ-12_7\myiq\myiq.db'
TRANSACTIONLOGON
COLLATION'936ZHCT
PAGESIZE4096
JAVAON
JCONNECTON
CASERESPECT
PASSWORDCASERESPECT
IQPATH,myiq.iq,
IQSIZE100
IQPAGESIZE131072
TEMPORARYPATH,myiq.iqtmp,
TEMPORARYSIZE10
SETOPTIONpublic.MINIMIZE_STORAGE=ON;
这个可以在数据库中设置一下,这样减轻字段存储空间的压力
-select*fromall_ind_columnswheretable_name='TB_CM_SERV,andtable_owner='IODATA_GZ';
数据文件的使用率:
Createproceduremyspace()
Begin
Declaremtunsignedbigint;
Declaremuunsignedbigint;
Declarettunsignedbigint;
Declaretuunsignedbigint;
Callspjqspaceused(mt,mu,tt,tu);
Selectcast(mt/1024asunsignedbigint)asmainMB,
Cast(mu/1024asunsignedbigint)asmainusedMB,
Mu*100/mtasmainPerCent,
Cast(tt/1024asunsignedbigint)as怕mpMB,
Cast(tu/1024asunsignedbigint)astempusedMB,
Tu*100/ttastempPerCent;
End
数据类型
1.1日期及时间数据类型
DATE日历日期,如年、月、日。
年可以从0001到9999。
日必须是非零值,以便最早日期为000171-01。
DATE值需要4个字节的存储空间。
DATETIME一个以TIMESTAMP的形式实现的域。
Z所以提供DATETIME,主要是为了与AdaptiveServerEnterprise兼容。
有关例外,请参见“字符串到日期时间转换的兼容性”。
SMALLDATETIME一个以TIMESTAMP的形式实现的域。
TIME一天中的时间,包含小时、分钟、秒,以及秒的小数部分。
分数存储为6位小数。
TIME值需要8个字节的存储空间-(ODBC标准将TIME数据类型限制为精确到秒。
因此,不要在要求的精度比秒更高的WHERE子句比较中使用TIME数据类型。
)
TIMESTAMP时间点,包含年、月、日、小时、分钟、秒,以及秒的小数部分。
分数存储为6位小数。
口必须为非零值。
TTMESTAMP值需要8个字节的存储空间。
1.2日期和时间格式
以下是用于指定时间的有效而明确的字符串:
21:
35-24小时制(如果未指定am或pm)
10:
00pm-已指定pm,因此为12小时制
10:
00-不带pm,因此是指10:
00am
10:
23:
32.234-包括秒以及秒的小数部分
在向数据库发送时间是,小时、分钟和秒必须用冒号分隔开(格式为hh:
mm:
ss:
sss),但可以显示在字符串屮的任意位置。
可以选择用句点将秒与秒的小数部分相互分隔开,如hhmmr.ss.sss。
将日期以字符串形式发送到数据库时,其到口期数据类型的转换是自动发生的。
您可以通过下面两种方式之一提供字符串:
•以yyyy/mm/dd或yyyy-mm-dd格式的字符串形式,其格式由数据库明确解释
selectrank()over(partitionbydept_idorderbysalary)fromempl;
rankC)over(partitionbyempldeptJdorderbyemplsalaryasc)
1
1
2
1
3
uw
4
4
c
w
6
6
7
1
8
-
4
9
3
10
4
4
1
•
Partitionby后一定要加orderby
1.2Now函数
selectnow(*)fromempl
nowf)
1
2010-01-0510:
40:
55.015000
2
2010-01-0510:
40:
55015000
3
2010-01-0510:
40:
55.015000
4
2010-01-0510:
40:
55.015000
5
2010-01-0510:
40:
55.015000
6
2010-01-0510:
40:
55.015000
7
2010-01-0510:
40:
55.015000
8
2010-01-0510:
40:
55.015000
9
2010-01-0510:
40:
55.015000
10
2010-01-0510:
40:
55.015000
11
2010-01-0510:
40:
55.015000
1.3ARGN函数[Miscellaneous]
从参数列表中返回所选参数。
语法:
ARGN(integer-expression,expression[,...])SELECTARGN(4,1,2,3,7,56)FROMiq.dummy;
ARGN(4.1.2.3.7.5.6)
亠7|
SELECTARGN(4,,sdf/asd\,sdfsdrg\,asrewryry7345sdfs,)FROMiq_dummy;
ARGN(4;sdf\,asd\,sdfsdrg\,asrewryry\345sdfs^
1卜srewryry]
1.4ARGN函数[Miscellaneous]
返回字符串表达式中第一个字节的整数ASCII值。
语法:
ASCII(string-expression)
SELECTASCII(Z)FROMiq_dummy
ASCHCZ')
1I90
1.5AVG函数[Aggregate]
为一组行计算数值表达式的平均值,或计算一组唯一值的平均值。
语法:
AVG(numeric-expression\DISTINCTcolumn-name)
1.6ABIGNTTOHEX函数[Datatypeconversion]
在VARCHAR(16)屮返回十进制整数的十六进制等效数字。
语法:
BIGINTTOHEX(integer-expression)
下而的语句返回值0000000(M)()()()()()09:
SELECTBIGINTTOHEX(9)FROMiq_dummy;
下面的语句返回值FFFFFFFFFFFFFFF7:
SELECTBIGINTTOHEX(-9)FROMiq_dummy;
1.7BIT_LENGTH函数[String]
返回字符串中的位数,即字符数*8
selectBIT_LENGTH(name),namefromemp1;
BIT_LENGTH(emp1name)
name
1
32Anna
2
32Mike
3
40
Scott
4
56
Antonia
5
32
Adam
6
24
Amy
7
32
Jeff
8
24
Tim
9
24
111
Jim
10
24
Tom
11
40
Sandy
4a
'•■
1.8BYTE_LENGH函数[String]
返回字符串中的字节数。
语法:
BYTE_LENGTH(string-expression)
BYTELENGTHCTesf)
1I4l
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,O)。
例如,
SELECTCAST(NULLASNUMERIC)A,
CAST(NULLASNUMERIC(15,2))B
说明为:
ANUMERIC(1,O)
BNUMERIC(15,2)
1.10CEIL函数[Numeric]
返回大于或等于指定表达式的最小整数。
1.11ceiling函数[Numeric]
返回一个数字的上限(不小于的最小整数)。
与ce订为同义词。
语法:
CEILING(numeric-expression)
下面的语句返回值60.00000:
SELECTCEILING(59.84567)FROMiq_dummy
下面的语句返回值123:
SELECTCEILING(123)FROMiq_dummy
下面的语句返回值124.0():
SELECTCEILING(123.45)FROMiq.dummy
下面的语句返回值-123.00:
SELECTCEILING(-123.45)FROMiq_dummy
1.12CHAR函数[String]
返回含数字所表示的ASCII值的字符。
i吾?
去:
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-expressionl,string-expression?
)
SELECTempjname,emp_fnameFROMemployeeWHERECHARINDEX(K,empjname)=1
empjname
empjname
1
Klobucher
James|
2
Kuo
Felicia
3
Kely
Moira|
selectcharindex(upper(,a,),name),namefromemp1;
1.15COALESCE函数[Miscellaneous]
返回列表屮的第一个菲空表达式。
语法:
COALESCE(expression,expression[,.・.])
1.16COL_NAME函数[System]
返回列名。
语法:
COLNAME(table-id,column-id[,database-id])
下面的语句返回值“Y”:
SELECTCHAR(89)FROMiq_dummy
下面的语句返回值“S”:
SELECTCHAR(83)FROMiq.dummy对于值大于255或小于()的整数表达式,CHAR返回NULL。
1.17CONNECTION_PROPERTY函数[System]
以字符串形式返回给定连接属性的值。
语法:
CONNECTION_PROPERTY({integer-expression1\string-expression]
・・・[,integer-expression2])
SELECTconnection_property('PrepStint')FROMtest;
IconnectionjjropertyfPrepStmC)
1.18CONVERT函数[Datatypeconversion]
返回转换成提供的数据类型的表达式。
语法:
CONVERT(data-type,expression[,format-style])
不含世纪(yy)
1
2
3
4
5
6
7
8
10
11
12
13
14
20
21
含世纪(yyyy)
0或100
101
102
103
104
105
106
107
108
9或109
110
111
112
113
114
120
121
365
输出
mmmddyyyyhh:
nnAM(或PM)mm/dd/yytyy]
[yy]yymmdddd/mm/yy[yy]dd.mmyy[yy]dd-mm-yy[yy]ddmmmyy[yy]mmmdd、xy[\y]hhimss
nimmddyyyyhhiin$sss^AM(或PM)mm-dd-yy[yy]
[yyJyy/mnVdd[yy]yymmdd
ddninmiyyyylih:
iin:
ss:
sss(24小时制,欧洲缺省时间+毫秒.4位数年份)
hkmrss(24小时制)
yyyy-mnrddliliims$(24小时制,ODBC规4位数年份)
yyyy-mm-ddhliniiss.sss(24小时制,ODBC规范加亳秒,4位数年份〉
yyyyjjj(*用字符串或整数形式,其中jjj是
-年中的儁略天数,从1到366)
order-date
order.date
order.date
1
16.03.93
16.03.1993
1993-03-1600:
00:
00.000000
2
20.03.93
20.03.1993
1993-03-2000:
00:
00.000000
3
23.03.93
23.03.1993
1993-03-2300:
00:
00.000000
4
25.03.93
25.03.1993
1993-03-2500:
00:
00.000000
5
26.03.94
26.03.1994
1994-03-2600:
00:
00.000000
6
30.03.94
30.03.1994
1994-03-3000:
00:
00.000000
7
30.03.94
30.03.1994
1994-03-3000:
00:
CMJ.000000
8
02.04.94
02.04.1994
1994-04-0200:
00:
00.000000
9
05.04.94
05.04.1994
1994-04-0500:
00:
00.000000
1C
06.04.94
06.04.1994
1994-04-0600:
00:
00.000000
11
07.04.94
I
07.04.1994
1994-04-0700:
00:
00.000000
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_nanie))FROMcustomer
1.20DATE函数[Dateandtime]
将表达式转换为口期,并删除任何小时、分钟或秒。
语法:
DATE(expression)
下面的语句返回值1988-11-26作为日期。
SELECTDATE(4988-11-2621:
20:
53’)FROMiq.dummy
1.21DATEADD函数[Dateandtime]
返回通过将指定数量的指定口期分量添加到口期中而生成的口期。
语法:
DATEADD(date-part,numeric-expression,date-expression)datepart要添加到日期中的日期分量。
numeric-expression要添加到H期中的Fl期分暈的数量。
numeric-expression口J以是任何数值类型;俏.截断为整数。
date-expression要修改的口期。
下面的语句返回值1995-11-0200:
00:
00.000:
SELECTDATEADD(month,102,'1987/05/02')FROMiq_dummy
1.22DATEDIFF函数[Dateandtime]
返回两个日期z间的时间间隔。
语法:
DATEDIFF(date-part,date-expression1,date-expression2)
date-expression1间隔的开始日期。
从date-expression-2中减去该值,以返回两个参数之间Fl期分量的数量。
date-expression2时间间隔的结朿日期。
从此值中减去date-expression/以返回两个参数间的H期分量的数量。
下面的语句返回1:
SELECTDATEDIFF(hour,'4:
00AM,'5:
50AM')FROMiq_dummy;
下面的语句返回102:
SELECTDATEDIFF(month,'1987/05/02','1995/11/15')FROMiq.dummy;
下面的语句返回0:
SELECTDATEDIFF(day,'00:
00*.'23:
59')FROMiq_dummy;
下面的语句返回4:
SELECTDATEDIFF(day,'1999/07/1900:
00\'1999/07/23:
23:
59')FROMiq_dummy;
下面的语句返回0:
SELECTDATEDIFF(month,'1999/07/19',*1999/07/23')FROMiq.dummy;
下面的语句返回1:
SELECTDATEDIFF(month,1999/07/19;'1999/08/23')FROMiq.dummy;
1.23DATEFORMAT函数[Dateandtime]
以指定的格式返回表示h期表达式的字符串。
语法:
DATEFORMAT(datetime-expression,string-expression)
datetime-expression要转换的日期/时间。
必须是日期、时间、时司戳或字符串。
string-expression转换后的日期格式。
下面的语句返回类似“Jan01,1989”的字符串值:
SELECTDATEFORMAT(start_date,'Mmmdd,yyyyr)fromemployee;
下面的语句返回字符串“Feb19,1987”。
SELECTDATEFORMAT(CAST('1987/02/19'ASDATE),4MmmDd,yyyy')FROMiq_dummy
1.24DATEPART函数[Dateandtime]
返回□期/时间值的指定部分的整数值。
语法:
date-part要返回的□期分量。
有关允许的日期分量的完整列表,请参见“Id期分量”(第235页)。
date-expression要返回其日期分量的日期。
日期必须包含字段。
SELECTDATEPART(month,*1987/05/02*)FROMiq_dummy;
1.25DATENAME函数[Dateandtime]
以字符串形式返回Fl期/时间值中指定部分的名称(如月份“June”)语法:
DATENAME(date-part,date-expression)
date-part要指定的日期分量。
date-expression要返回其Fl期分量名称的Fl期。
日期必须包含请求的dcite-pcirt.下面的语句返回值May:
SELECTdatcnamc(month,11987/05/02*)FROMiq_dummy
1.26DATETIME函数[Dateandtime]
将表达式转换成时间戳。
语法:
DATETIME(expression)
expression要转换的表达式。
表达式通常是字符串。
可能会报告转换错误。
SELECTDATETIMEC'1998-09-0912:
12:
12.000')FROMiq_dummy
返回含有值1998-09-0912:
12:
12.000的时间戳:
1.27DAY函数[Dateandtime]
返回1到31之间的一个整数,该整数对应于指定日期中的每月几号。
语法:
DAY(date-expression)
下面的语句返回值12:
SELECTDAY(*2001-09-121)FROMiq_dummy
1.28DAYNAME函数[Dateandtime]
返回指定日期中的星期儿的名称。
语法:
COALESCE(expression,expression[,...])下面的语句返回值Saturday:
SELECTDAYNAME(11987/05/02*)FROMiq_dummy
1.29DAYS函数[Dateandtime]
返回自任意开始n期以來的天数,返回两个指定口期之间的天数,或者将指定的integer-expression数量的天添加到给定日期屮。
语法
DAYS(datetime-expression)|(datetime-expression,datetime-expression
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Sybaseiq 数据库 函数 整理 文档 docx