簡體   English   中英

sql中的datename函數

[英]datename function in sql

我想從給定日期開始一周,為此我嘗試使用DATENAME函數來獲得WEEK,

 Select DateName(WEEK,'2012-03-09')

我得到輸出為10.我想得到本周的開始日期和結束日期,如2012-03-04 to 2012-03-10可能嗎?

做這樣的事情:

DECLARE @MyDate Date = '2012-03-09';

-- This gets you the SUNDAY of the week your date falls in...
SELECT DATEADD(DAY, -(DATEPART(WEEKDAY, @MyDate) - 1), @MyDate);

-- This gets you the SATURDAY of the week your date falls in...
SELECT DATEADD(DAY, (7 - DATEPART(WEEKDAY, @MyDate)), @MyDate);

-- This will show the range as a single column
SELECT
  CONVERT(NVarChar, DATEADD(DAY, -(DATEPART(WEEKDAY, @MyDate) - 1), @MyDate))
  + ' through ' +
  CONVERT(NVarChar, DATEADD(DAY, (7 - DATEPART(WEEKDAY, @MyDate)), @MyDate));

嘗試以下操作,將getdate更改為您的日期

Select 
DateAdd(d, 1- DatePart(dw,GetDate()),GetDate()) FirstDayOfWeek,
DateAdd(d, 7- DatePart(dw,GetDate()),GetDate()) LastDayOfWeek

這不依賴於datefirst的默認設置。

set datefirst 4 -- this row does nothing in this query. 
                -- It will hurt the queries using datepart though
declare @t table(dt datetime)
insert @t values('2012-03-09 11:12'), ('2012-03-10 11:12'),('2012-03-11 11:12')

-- week from sunday to saturday 
Select dateadd(week, datediff(week, 0, dt),-1),
       dateadd(week, datediff(week, 0, dt),+5)
from @t

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM