SqlServer 存储过程实现周一取上周五数据

主要使用了 DATEPART函数、DATEADD 函数

DateAdd函数说明
https://www.w3school.com.cn/sql/func_dateadd.asp

DATEPART函数说明
https://www.w3school.com.cn/sql/func_datepart.asp

存储过程定义:

数据库表名 TABLETEST
字段 Value 存储具体数据
字段 Date yyyyMMdd字符串格式数据

CREATE PROCEDURE PROC_GetLastFridayData(@Date VARCHAR(8))
AS 
BEGIN     
	DECLARE @temp varchar(60)
	DECLARE @dw INT -- 星期几

	SELECT @dw=DATEPART(dw,CONVERT(datetime,@Date)) 
	IF(@dw = 2)
		BEGIN
		SELECT @temp=CONVERT(varchar(8), DATEADD(dd,-3,@Date), 112)
		EYear
	ELSE
		BEGIN
		SELECT @temp=CONVERT(varchar(8), DATEADD(dd,-1,@Date), 112)
		EYear

	EXEC('SELECT Value FROM TABLETEST WHERE Date = '''+@temp+'''')
END

版权声明:本文为xuhuixuhui_9310原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。