根据输入时间日期返回时间、昨天、本周几、具体日期 类似于微信朋友圈时间 (msserver 标量值函数 )

--根据输入时间日期返回时间、昨天、本周几、具体日期   类似于微信朋友圈时间  (msserver 标量值函数 )

--命名为中文,请勿喷

</pre><pre name="code" class="sql">CREATE FUNCTION 解析_时间
(
	@输入时间 DATETIME
)
RETURNS NVARCHAR(50)
AS
BEGIN
	DECLARE @当前时间 DATETIME,@当前日期 DATE,@昨天日期 DATE,@当前时刻 NVARCHAR(50),@本周一日期 DATE,@当前年份 NVARCHAR(20)
	SET @当前时间=GETDATE();
	SET @当前日期= CONVERT(DATE,@当前时间,110)
	SET @昨天日期=DATEADD(DAY,-1,@当前日期)
	SET @当前时刻=  CONVERT(NVARCHAR(50),@当前时间,108) 
	SET @本周一日期=  CONVERT(DATE,DATEADD(wk, DATEDIFF(week,0,@当前时间),0),110) 
	SET @当前年份=  DATENAME(YEAR, @当前时间) 
	
	DECLARE @输入日期 DATE,@输入时刻 NVARCHAR(50),@所在周 NVARCHAR(50),@输入年份 NVARCHAR(20),@输入月 NVARCHAR(10),@输入日 NVARCHAR(10),@输入时 NVARCHAR(10),@输入分 NVARCHAR(10)
	SET @输入日期= CONVERT(DATE,@输入时间,110)
	SET @输入时刻=  CONVERT(NVARCHAR(50),@输入时间,108) 
	SET @所在周=  DATENAME(WEEKDAY,@输入时间)
	SET @输入年份=  DATENAME(YEAR, @输入时间) 
	SET @输入月=  DATENAME(MONTH, @输入时间)
	SET @输入日=  DATENAME(DAY, @输入时间)
	SET @输入时=  DATENAME(HOUR, @输入时间)
	SET @输入分=  DATENAME(MINUTE, @输入时间)
	
	DECLARE @返回字符串 NVARCHAR(50)
	BEGIN
		IF @当前日期=@输入日期  SET @返回字符串=@输入时+':'+@输入分
		ELSE IF @昨天日期=@输入日期  SET @返回字符串='昨天'
		ELSE IF (@本周一日期<=@输入日期 AND @输入日期<@当前日期) SET @返回字符串=@所在周
		ELSE IF @当前年份=@输入年份 SET @返回字符串=@输入月+'-'+@输入日
		ELSE IF @当前年份<>@输入年份 SET @返回字符串=@输入日期
		ELSE SET @返回字符串='计算出错';
	END
	RETURN @返回字符串
END
GO


SELECT dbo.解析_时间('2015-10-06 09:33:47.487')  <span style="font-family: Arial, Helvetica, sans-serif;">--执行标题函数</span>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值