发布网友 发布时间:2022-04-11 09:15
共6个回答
懂视网 时间:2022-04-11 13:37
DECLARE @table TABLE
(
id INT IDENTITY,
CreateDate DATE
);
INSERT INTO @table
(
CreateDate
)
SELECT ‘2020-06-07‘--上周日
UNION ALL
SELECT ‘2020-06-08‘--本周一
UNION ALL
SELECT ‘2020-06-09‘--本周二
UNION ALL
SELECT ‘2020-06-10‘--本周三
UNION ALL
SELECT ‘2020-06-11‘--本周四
UNION ALL
SELECT ‘2020-06-12‘--本周五
UNION ALL
SELECT ‘2020-06-13‘--本周六
UNION ALL
SELECT ‘2020-06-14‘--本周日
UNION ALL
SELECT ‘2020-06-15‘--下周一
DECLARE @date DATE = ‘2020-06-12‘;--本周五
DECLARE @wkStart DATE;
SET @wkStart = DATEADD(DAY, - (DATEPART(WEEKDAY, @date) - 2), @date);
IF (@wkStart > @date)
BEGIN
SET @wkStart = DATEADD(WEEK, -1, @wkStart);
END;
DECLARE @wkend DATE = DATEADD(WEEK, 1, @wkStart);
--截止到今天自然周数据
SELECT *,DATENAME(dw, CONVERT(DATETIME,CreateDate) + @@DateFirst) time
FROM @table
WHERE CreateDate >= @wkStart
AND CreateDate < @wkend
AND DATEDIFF(DAY, CreateDate, GETDATE()) >= 0;
--本周自然周数据
SELECT *,DATENAME(dw, CONVERT(DATETIME,CreateDate) + @@DateFirst ) time
FROM @table
WHERE CreateDate >= @wkStart
AND CreateDate < @wkend
sqlserver获取自然周数据
标签:creat ted rom star ide where set insert entity
热心网友 时间:2022-04-11 10:45
使用datename函数
需要注意,数据库的语言选择不同,结果不同。
例:将数据库语言切换为英语,输出结果为wednesday
热心网友 时间:2022-04-11 12:03
不知道你什么数据库,,,热心网友 时间:2022-04-11 13:37
SELECT DATEname(WEEKDAY, GETDATE())热心网友 时间:2022-04-11 15:29
我是oracle:热心网友 时间:2022-04-11 17:37
vertica数据库获取上周五的日期: select case when date_part('dow',date'20201119')<>6 then trunc(date'20201119','d')-2 else date'20201119'-1 end