输入日期2006-4-2 2:55:44如果是最近2天,就得到'今天 2:55:44','昨天 2:55:44'
如果是以前一周以内的日期就得到'本周一 2:55:44' 或者 '上周五 2:55:44'
如果超过一周就显示实际内容。而且要求中英双语版。头晕了。 谢谢!
如果是以前一周以内的日期就得到'本周一 2:55:44' 或者 '上周五 2:55:44'
如果超过一周就显示实际内容。而且要求中英双语版。头晕了。 谢谢!
gocreate function f_getInfo(@date datetime)
returns varchar(20)
as
begin
declare @ret varchar(20),@wk int,@dw varchar(2)
select
@wk=datediff(wk,@date,dates),
@dw=case datepart(dw,@date)
when 1 then '一'
when 2 then '二'
when 3 then '三'
when 4 then '四'
when 5 then '五'
when 6 then '六'
when 7 then '日'
end
from v1
if(@wk)=0
set @ret='本周'+@dw+convert(char(8),@date,108)
else if(@wk)=1
set @ret='上周'+@dw+convert(char(8),@date,108)
else
set @ret=convert(varchar(20),@date,120)
return @ret
end
goset datefirst 1
select dbo.f_getInfo(getdate()-10)
godrop view v1
drop function f_getinfo
go
@date1 是你输入的日期 @date2 当前日期
alter function getdate1(@date1 datetime ,@date2 datetime)
returns varchar
as
begin
declare @s varchar(8000) if datediff(dd,@date2,@date1) < 2
begin
select @s = '今天' + convert(varchar(8),@date1,108) + '昨天' + convert(varchar(8),@date1,108)
end
else if (datepart(wk,@date2) - datepart(wk,@date1)) = 1
begin
select @s = '..........'
end
else
begin
select @s = convert(varchar(20) ,@date2,120)
endreturn @send
以下很早写的日期函数 仅供参考。create FUNCTION dbo.func_getweekmonday
(@now datetime)
RETURNS varchar(10)
AS
BEGIN
declare @weekstartdate datetime
set @weekstartdate = dateadd(day,1-datepart(weekday,@now),@now)
set @weekstartdate = dateadd(day, 1, @weekstartdate)
return dbo.func_getdate(@weekstartdate)
ENDREATE FUNCTION dbo.func_getdate
(@date datetime)
RETURNS varchar(10)
AS
BEGIN
declare @y varchar(4)
declare @m varchar(2)
declare @d varchar(2)
declare @dt varchar(10) set @y = convert(varchar(4),year(@date))
set @m = convert(varchar(2),month(@date))
set @d = convert(varchar(2),day(@date))
set @dt = @m + '/' + @d + '/' + @y
if @dt = '1/1/1900'
set @dt = ''
if @dt = '01/01/1900'
set @dt = ''
if @dt = '12/31/9999'
set @dt = ''
return @dt
ENDREATE FUNCTION dbo.func_getweekenddate
(@now datetime)
RETURNS varchar(10)
AS
BEGIN
declare @weekenddate datetime
set @weekenddate = dateadd(day,7-datepart(weekday,@now),@now)
return dbo.func_getdate(@weekenddate)
END