Sybase ASE15.0.3中用SQL Function来调整日期显示格式
Sybase ASE自15.0.2后增加了用户自定义函数的功能。
在Sybase中,以 2010-10-18 12:30:01格式显示日期数据时,用convert函数不能实现,需要替换一下字符。
select convert(varchar,getdate(),117)
go
------------------------------
2010/10/18 20:51:10
(1 row affected)
利用函数str_replace替换上面返回的日期字符串中的/为-
str_replace(convert(char(19),getdate(),117),'/','-')
1> select str_replace(convert(char(19),getdate(),117),'/','-')
2> go-------------------
2010-10-18 20:53:13(1 row affected)
利用ASE15.0.2开始增加的用户自定义函数功能,创建一个SQLFunction。
create function datefmt_lzf(@d datetime)
returns char(19)
as
return str_replace(convert(char(19),@d,117),'/','-')
go
函数的用法:
1> select dbo.datefmt_lzf(getdate())
2> go-------------------
2010-10-18 20:55:46(1 row affected)
1> select dbo.datefmt_lzf(convert(datetime,'Oct 18 2010 20:56:45'))
2> go-------------------
2010-10-18 20:56:45(1 row affected)
1>
注意函数名前要加上所属用户名。