Programing

SQL Server의 지정된 날짜에서 요일 이름 가져 오기

crosscheck 2021. 1. 6. 20:19
반응형

SQL Server의 지정된 날짜에서 요일 이름 가져 오기


나는 주어진 날짜에서 금요일, 토요일, 일요일, 월요일 등과 같은 요일 이름을 얻으려고합니다. 예를 들어 요일 이름을 반환하는 내장 함수가 있다는 것을 알고 있습니다.

SELECT DATENAME(dw,'09/23/2013') as theDayName 

이 SQL 쿼리는 다음을 반환합니다.

'월요일'

이것은 모두 괜찮습니다. 하지만 Month, Day and Year개별적 으로 통과하고 싶습니다 .

내장 DATEPART 함수를 사용하여 날짜에서 월, 일 및 연도를 검색하므로 DATENAME 함수에 전달할 수 있습니다.

SELECT DATEPART(m, GETDATE()) as theMonth  -- returns 11
SELECT DATEPART(d, GETDATE()) as theDay   -- returns 20
SELECT DATEPART(yy, GETDATE()) as theYear   -- returns 2013

이제 월, 일, 연도 값을 개별적 DATENAME으로 얻었 으므로 Weekname원하는 날짜 를 가져 오기 위해 이를 my 전달합니다 .

--my SQL query to return dayName
SELECT (DATENAME(dw, DATEPART(m, GETDATE())/DATEPART(d, myDateCol1)/ DATEPART(yy, getdate())))  as myNameOfDay, FirstName, LastName FROM myTable

잘못된 요일 이름을 반환합니다. DATENAME 함수에서 내 SQL 쿼리가 다음과 같이되도록 /로 바꾸려고했습니다.

SELECT DATENAME(dw,'09/23/2013') 
--becomes
SELECT DATENAME(dw,'09-23-2013') 

하지만 여전히 내 SQL 쿼리에서 잘못된 dayName을 반환합니다. 여기에 뭔가 빠졌나요?

조언하십시오.


날짜 문자열을 구성해야합니다. DATEPART의 숫자 반환 값에 대해 MATH / 숫자 연산을 수행 하는 /또는 -연산자를 사용 하고 있습니다. 그런 다음 DATENAME해당 숫자 값을 사용하여 날짜로 해석합니다.

문자열로 변환해야합니다. 예를 들면 :

SELECT (
  DATENAME(dw, 
  CAST(DATEPART(m, GETDATE()) AS VARCHAR) 
  + '/' 
  + CAST(DATEPART(d, myDateCol1) AS VARCHAR) 
  + '/' 
  + CAST(DATEPART(yy, getdate()) AS VARCHAR))
  )

SQL 2005 및 2008에서 테스트 및 작동합니다. 2012 년 이후에도 작동하는지 확실하지 않습니다.

솔루션은 DATEPART 대신 DATENAME을 사용합니다.

select datename(dw,getdate()) --Thursday
select datepart(dw,getdate()) --2

이것은 SQL 2014에서도 작동합니다.


SQL Server 2012가있는 경우 :

날짜 부분이 정수이면 DATEFROMPARTS함수 를 사용할 수 있습니다 .

SELECT DATENAME( dw, DATEFROMPARTS( @Year, @Month, @Day ) )

날짜 부분이 문자열이면 CONCAT함수를 사용할 수 있습니다 .

SELECT DATENAME( dw, CONVERT( date, CONCAT( @Day, '/' , @Month, '/', @Year ), 103 ) )

다음과 같이 시도하십시오. DATENAME (DW, GETDATE ()) 선택


SELECT DATENAME(DW,CONVERT(VARCHAR(20),GETDATE(),101))

나는 사용했다

select
case
when (extract (weekday from DATE)=0) then 'Sunday'

등등...

0 일요일, 1 월요일 ...

ReferenceURL : https://stackoverflow.com/questions/20106871/get-week-day-name-from-a-given-date-in-sql-server

반응형