Как распечатать неделю в SQL

Я использую сервер sql. то, что я делал, это:

LEFT(yearmonth,4) + RIGHT( '0' + CONVERT(VARCHAR, DATEPART(WK, yearmonthdate)), 2)

yearmonth = '201601'

а также

yearmonthdate = '20160101' до '20160131'

который печатается следующим образом:

201601
201602

но я хочу распечатать, как показано ниже:

20160101-20160102
20160103-20160109

соответственно.

Как это сделать? У меня на google, но я не мог так распечатать. Заранее спасибо.

sql,sql-server,

0

Ответов: 1


0 принят
DECLARE @Table TABLE (Col1 INT, Col2 DATETIME)
DECLARE @StartDT DATETIME
DECLARE @tempDT DATETIME
DECLARE @EndDT DATETIME
SET @StartDT  = DATEFROMPARTS(YEAR(getdate()),MONTH(getdate()),1)
SET @EndDT  = EOMONTH (@StartDT)

set @tempDT=@StartDT

WHILE @StartDT <  @EndDT
BEGIN
PRINT 
     CONVERT(VARCHAR,cast(@tempDT as date)) 
     +  ' - '   + 
     convert(VARCHAR,cast(DATEADD(dd, 7-(DATEPART(dw, @StartDT)), @StartDT) as date))

SET @StartDT    =   DATEADD(dd, 7-(DATEPART(dw, @StartDT)), @StartDT)
SET  @tempDT = DATEADD(dd,1,@StartDT)
SET @StartDT    =   DATEADD(WEEK,1,@StartDT)
END

PRINT   
     CONVERT(VARCHAR,cast(@tempDT as date)) 
     +  ' - '   + 
     convert(VARCHAR,cast(@EndDT as date))
SQL, SQL-сервер,