存档
以YYYYMMDDHHMMSS的格式显示日期的SQL语句为:
其中日期部分:convert(varchar,getdate(),112)
时间部分为:convert(varchar,getdate(),108)
需要将时间部分的:16:18:45里的冒号去掉。使用函数:str_replace,将冒号去掉,注意是NULL而不是空字符。
1> select str_replace(convert(varchar,getdate(),108),':',NULL)
2> go------------------------------
162014
完整的SQL语句为:
str_replace(convert(varchar,getdate(),112) + convert(varchar,getdate(),108) , ':',NULL)
ASE自15.0后增加了3中语义分区:hash、range、list。默认的轮询分区(roundrobin)为非语义分区,是为了兼容15.0之前的版本而设计的。
语义分区表的分区信息主要存储在:syspartitions和syspartitionkeys这两张表中。
查看表的分区信息可以使用系统自带的存储过程:sp_helpartition
本文提供3个SQL语句:
-
如何判断一个表是否是分区表?
select count(*) from dbo.syspartitionkeys where id=object_id(table_name)
示例:
1> if exists(select 1 from dbo.syspartitionkeys where id = object_id("PART_RESDISK"))
2> print "table PART_RESDISK exists!"
3> else
4> print "table PART_RESDISK not exists!"
5> go
table PART_RESDISK exists!
ASE15.0中的表默认为roundrobin类型的"分区表",系统表syspartitionkeys表中仅仅记录语义分区表的分区键信息。
利用前面介绍的用Sybase Central连接ASE数据库的方法
用Sybase Central连接Sybase ASE数据库 http://www.dbainfo.net/connnect-to-sybase-ase-by-sybase-central-client-tool.htm
成功连接上数据库后,会显示如下的窗口。
如果左边窗口中没有显示如图所示的文件夹列表,那么需要选择菜单视图下的文件夹菜单 阅读全文...
Sybase ASE15.0.3客户端的安装介质和其它一些客户端组件(比如:PowerDesigner,PowerTransfer,InfoMaker等)一起被放置在一张光盘中。使用光盘或者将ASE客户端拷贝到硬盘上进行安装。下图是客户端介质光盘的目录列表。
windows下的Sybase ASE客户端可以安装在32位和64位的平台上,分别对应目录下的pcclient32和pcclient64目录。
ASE 15.0.3 客户端 32位和64位下载地址:ase1503_client_win32_2.zip
本文档演示在windows XP SP3环境上安装Sybase ASE客户端。进入目录pcclient32,有setup.exe 和 setupConsole.exe两个文件。
双击setupConsole.exe进行Sybase ASE客户端的安装过程 阅读全文...
Oracle中查询月底那天的日期的函数为:last_day()。 在ASE中没有对应的函数,在Oracle移植到Sybase的时候,需要手动编写函数来实现,幸亏ASE15.0.2后开始支持自定义函数。
下面提供3种实现查询本月最后一天的日期的SQL语句:
第一种:
select dateadd(dd,-1,convert(char(8),(datepart(yy,dateadd(mm,1,getdate()))*10000+datepart(mm,dateadd(mm,1,getdate()))*100+01)))
go
将本月的下一个月的年份和月份提取出来,以数字的形式相加,然后转化成类似YYYYMMDD的这种日期格式。最后直接取下个月的第一天的前一天即可。在ASE中字符串 '20110101' 和 convert(datetime,'20110101') 是相等的。
第二种: 阅读全文...
convert函数的style截止到ASE15.0.3有以下的样式!
Date format conversions using the style parameter
Without century (yy) |
With century (yyyy) |
Standard |
Output |
- |
0 or 100 |
Default |
mon dd yyyy hh:mm AM (or PM) |
1 |
101 |
USA |
mm/dd/yy |
2 |
2 |
SQL standard |
yy.mm.dd |
3 |
103 |
English/French |
dd/mm/yy |
4 |
104 |
German |
dd.mm.yy |
5 |
105 |
dd-mm-yy |
|
6 |
106 |
dd mon yy |
|
7 |
107 |
mon dd, yy |
|
8 |
108 |
HH:mm:ss |
|
- |
9 or 109 |
Default + milliseconds |
mon dd yyyy hh:mm:ss AM (or PM) |
10 |
110 |
USA |
mm-dd-yy |
11 |
111 |
Japan |
yy/mm/dd |
12 |
112 |
ISO |
yymmdd |
13 |
113 |
yy/dd/mm |
|
14 |
114 |
mm/yy/dd |
|
14 |
114 |
hh:mi:ss:mmmAM(or PM) |
|
15 |
115 |
dd/yy/mm |
|
- |
16 or 116 |
mon dd yyyy HH:mm:ss |
|
17 |
117 |
hh:mmAM |
|
18 |
118 |
HH:mm |
|
19 |
hh:mm:ss:zzzAM |
||
20 |
hh:mm:ss:zzz |
||
21 |
yy/mm/dd HH:mm:ss |
||
22 |
yy/mm/dd HH:mm AM (or PM) |
||
23 |
yyyy-mm-ddTHH:mm:ss |
在oracle的sqlplus中有一个命令:desc,能够简要的显示基表、视图等的结构。desc的显示结果简单明了,比较实用。虽然在Sybase ASE中的存储过程sp_help也能实现查看表结构的目的;但是,显示结果很多尤其换行混乱,让人看得眼花缭乱。显示的存储过程:sp_desc能够实现oracle的sqlplus中desc相同的功能,仅仅多了一列:列序号。
效果图如下:
存储过程sp_desc的语法如下: 阅读全文...
Sybase ASE自版本15.0.2开始增加判断字符串是否为日期类型的函数:isdate,以及判断字符串是否为数字类型的函数:isnumeric
函数:isdate
Syntax
isdate(character_expression)
Parameters
character_expression
is a character-type variable, constant expression, or column name.
Usage
Returns 1 if the expression is a valid datetime value; returns 0 if it is not. Returns 0 for NULL input. 阅读全文...