SQL 服务器上周从星期日到星期六
SQL Server Last week from sun to sat
我正在尝试获取从周日到上周周六的日期,我的代码是,
Declare
@now DateTime, @fmWeek DateTime, @toWeek DateTime
Set @now = GetDate()
Set @fmWeek = Convert(DateTime, DateAdd(wk, DateDiff(wk, 0, @now), -1))
Set @toWeek = DATEADD(ms,-3,Convert(DateTime, DateAdd(wk, DateDiff(wk, 0, @now), 6)))
select @fmWeek, @toWeek
它显示了从 2018-04-15 00:00:00.000
到 2018-04-21 23:59:59.997
的数据
我需要从前一周的太阳到坐不在同一周的日期
I need to get dates from previous week sun to sat not the same week
我会减去 7 天:
Declare @now DateTime = GetDate()
,@fmWeek DateTime, @toWeek DateTime;
Set @fmWeek = DateAdd(wk, DateDiff(wk, 0, @now), -1) - 7;
Set @toWeek = DateAdd(wk, DateDiff(wk, 0, @now), 5) - 7;
select @fmWeek, @toWeek;
如果您只想显示两个日期,@lad2025 已经为您提供了获取日期的正确查询。
如果你想显示这两天之间的所有日期,你可以尝试如下。
Declare @now DateTime = GetDate()
,@fmWeek DateTime, @toWeek DateTime;
Set @fmWeek = DateAdd(wk, DateDiff(wk, 0, @now), -1) - 7;
Set @toWeek = DateAdd(wk, DateDiff(wk, 0, @now), 5) - 7;
SELECT @fmWeek + RN AS DATE FROM
(
SELECT (ROW_NUMBER() OVER (ORDER BY (SELECT NULL)))-1 RN
FROM master..[spt_values] T1
) T
WHERE RN <= DATEDIFF(DAY,@fmWeek,@toWeek)
输出:
Date
------------------------
2018-04-08 00:00:00.000
2018-04-09 00:00:00.000
2018-04-10 00:00:00.000
2018-04-11 00:00:00.000
2018-04-12 00:00:00.000
2018-04-13 00:00:00.000
2018-04-14 00:00:00.000
我正在尝试获取从周日到上周周六的日期,我的代码是,
Declare
@now DateTime, @fmWeek DateTime, @toWeek DateTime
Set @now = GetDate()
Set @fmWeek = Convert(DateTime, DateAdd(wk, DateDiff(wk, 0, @now), -1))
Set @toWeek = DATEADD(ms,-3,Convert(DateTime, DateAdd(wk, DateDiff(wk, 0, @now), 6)))
select @fmWeek, @toWeek
它显示了从 2018-04-15 00:00:00.000
到 2018-04-21 23:59:59.997
我需要从前一周的太阳到坐不在同一周的日期
I need to get dates from previous week sun to sat not the same week
我会减去 7 天:
Declare @now DateTime = GetDate()
,@fmWeek DateTime, @toWeek DateTime;
Set @fmWeek = DateAdd(wk, DateDiff(wk, 0, @now), -1) - 7;
Set @toWeek = DateAdd(wk, DateDiff(wk, 0, @now), 5) - 7;
select @fmWeek, @toWeek;
如果您只想显示两个日期,@lad2025 已经为您提供了获取日期的正确查询。
如果你想显示这两天之间的所有日期,你可以尝试如下。
Declare @now DateTime = GetDate()
,@fmWeek DateTime, @toWeek DateTime;
Set @fmWeek = DateAdd(wk, DateDiff(wk, 0, @now), -1) - 7;
Set @toWeek = DateAdd(wk, DateDiff(wk, 0, @now), 5) - 7;
SELECT @fmWeek + RN AS DATE FROM
(
SELECT (ROW_NUMBER() OVER (ORDER BY (SELECT NULL)))-1 RN
FROM master..[spt_values] T1
) T
WHERE RN <= DATEDIFF(DAY,@fmWeek,@toWeek)
输出:
Date
------------------------
2018-04-08 00:00:00.000
2018-04-09 00:00:00.000
2018-04-10 00:00:00.000
2018-04-11 00:00:00.000
2018-04-12 00:00:00.000
2018-04-13 00:00:00.000
2018-04-14 00:00:00.000