반응형
WITH nums ( num )
AS
(
SELECT ROW_NUMBER() OVER ( ORDER BY ( SELECT NULL ) ) -1
FROM sys.all_columns
)
, dlist ( aDay )
AS
(
SELECT TOP 500 DATEADD( DAY, num * -1, '2024-05-01' )
FROM nums
)
, dlist2 ( aDay, TGD )
AS
(
SELECT aDay, DATEADD( DAY, ( ( 8 - DATEPART( WEEKDAY, aDay ) ) % 7 ) - 3, aDay ) AS ThuOfGivenDay
FROM dlist
)
SELECT *
, DATEPART( YEAR, TGD ) AS [년]
, DATEPART( MONTH, TGD ) AS [월]
, ( DATEPART( DAY, TGD ) - 1 ) / 7 + 1 AS [주]
, DATEPART(WEEKDAY, aDay ) AS [요일] -- 1: 일요일, 2:월요일, 3:화요일, 4:수요일, 5:목요일, 6:금요일, 7:토요일
FROM dlist2
WHERE ( DATEPART( DAY, TGD ) - 1 ) / 7 + 1 ='3'
AND DATEPART(WEEKDAY, aDay ) ='6'
반응형
'Database' 카테고리의 다른 글
[MYSQL]몇 년치 날짜데이터 테이블 만들기 (0) | 2024.05.29 |
---|---|
[MYSQL]특정 범위에 없는 날짜 데이터 만들기 (0) | 2024.05.29 |
Elastic Search (0) | 2024.02.15 |
[mariadb] WITH 재귀쿼리 계층구조(조직도) (0) | 2024.02.15 |
[MYSQL]초단위 -> 일시분초 (0) | 2023.04.14 |