求两个将DataTime 分别转换成日期和时间的字符串数据库自定义函数,谢谢大哥们
要装换成这样的 "20040405" 和 "081223" DateTime 是这样2005-1-17 10:44:40 的请教这两个数据库自定义函数怎么写!谢谢大哥们 问题点数:0、回复次数:6Top
1 楼adminis(古董)回复于 2005-04-02 09:24:49 得分 0
Convert(Varchar(14), DateTime, 112)Top
2 楼zjcxc(邹建)回复于 2005-04-02 09:32:29 得分 0
declare @dt datetime
set @dt='2005-1-17 10:44:40'
--转换
select convert(char(8),@dt,112),replace(convert(char(8),@dt,108),':','')
--结果:20050117 104440
Top
3 楼zjcxc(邹建)回复于 2005-04-02 09:36:25 得分 0
--写成自定义函数就是
create function f_convert(@dt datetime,@bz bit)returns varchar(15)
as
begin
if @bz=0 --@bz=0则转换为日期
return(convert(char(8),@dt,112))
else if @bz=1 --@bz=0则转换为时间
return(replace(convert(varchar(8),@dt,108),':',''))
--@bz=null则转换为日期+时间
return(convert(char(8),@dt,112)
+' '
+replace(convert(varchar(8),@dt,108),':',''))
end
go
--调用
select date=dbo.f_convert('2005-1-17 10:44:40',0)
,time=dbo.f_convert('2005-1-17 10:44:40',1)
,date_time=dbo.f_convert('2005-1-17 10:44:40',null)
go
/*--结果
date time date_time
--------------- --------------- ---------------
20050117 104440 20050117 104440
(所影响的行数为 1 行)
--*/
Top
4 楼yptang0(一叶知秋)回复于 2005-04-02 10:25:04 得分 0
CREATE FUNCTION dbo.RetStringTime (@Time DateTime)
RETURNS varchar(20) AS
BEGIN
declare @OutTime varchar(5)
set @OutTime=replace(convert(char(8),@Time ,108),':','')
RETURN(@OutTime)
END
为什么我写成这样返回的时间 是这样的 10472Top
5 楼zjcxc(邹建)回复于 2005-04-02 10:36:33 得分 0
CREATE FUNCTION dbo.RetStringTime (@Time DateTime)
RETURNS varchar(20) AS
BEGIN
declare @OutTime varchar(6) --varchar(5) --这里定义得太小,截断了
set @OutTime=replace(convert(char(8),@Time ,108),':','')
RETURN(@OutTime)
ENDTop
6 楼yptang0(一叶知秋)回复于 2005-04-02 10:39:16 得分 0
我也看到了谢谢已经搞定了 谢谢你们Top




