SQL 查询周开始结束日期

  1. DECLARE @dbDefaultWeekStart INTEGER = @@DATEFIRST; /*take backup of db default week start day*/
  2. DECLARE @expectedWeekStart INTEGER 6; /*expected week start from 'Saturday'*/
  3. SET DATEFIRST @expectedWeekStart; /*set week start day as expected*/
  4. /*doing our calculation as needed*/
  5. DECLARE @dateTimeNow DATETIME = GETDATE();
  6. SELECT
  7. [StartDate] = DATEADD(dd, -(DATEPART(WEEKDAY, @dateTimeNow)-1),
  8. DATEADD(dd, DATEDIFF(dd, 0, @dateTimeNow), 0)),
  9. [EndDate] = DATEADD(dd, 7-(DATEPART(WEEKDAY, @dateTimeNow)),
  10. DATEADD(dd, DATEDIFF(dd, 0, @dateTimeNow), 0));
  11. SELECT
  12. [StartDateTime] = DATEADD(DAY, -(DATEPART(WEEKDAY, @dateTimeNow)-1),
  13. DATEADD(DAY, DATEDIFF(DAY, 0, @dateTimeNow), 0)),
  14. [EndDateTime] = DATEADD(DAY, 7-(DATEPART(WEEKDAY, @dateTimeNow)),
  15. DATEADD(SECOND, -1, DATEADD(DAY, DATEDIFF(DAY, 0, @dateTimeNow) 1, 0)))
  16. /*reset week start date to its default or as it was*/
  17. SET DATEFIRST @dbDefaultWeekStart;
posted @ 2021-11-10 10:18  KJXY  阅读(164)  评论(0)    收藏  举报