coffee

coffee let one show himself.

根据输入时间日期返回时间、昨天、本周几、具体日期 类似于微信朋友圈时间 (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>



阅读更多
文章标签: ms sql server 函数
个人分类: SQL
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭