sourcecode

SQL Server에서 지정된 월, 일 및 연도의 요일 이름을 개별적으로 가져옵니다.

copyscript 2023. 7. 8. 11:05
반응형

SQL Server에서 지정된 월, 일 및 연도의 요일 이름을 개별적으로 가져옵니다.

저는 주어진 날짜로부터 금요일, 토요일, 일요일, 월요일 등의 요일 이름을 얻으려고 노력하고 있습니다.다음과 같은 요일 이름을 반환하는 내장 함수가 있다는 것을 알고 있습니다.

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

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

'월요일'

괜찮아요.하지만 저는 합격하고 싶습니다.Month, Day and Year개별적으로

DATENAME 함수에 전달할 수 있도록 날짜에서 월, 일 및 연도를 검색하기 위해 내장된 DATEPART 함수를 사용하고 있습니다.

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 SQL query to return dayName
SELECT (DATENAME(dw, DATEPART(m, GETDATE())/DATEPART(d, myDateCol1)/ DATEPART(yy, getdate())))  as myNameOfDay, FirstName, LastName FROM myTable

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

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

그러나 여전히 SQL 쿼리에서 잘못된 dayName을 반환합니다.제가 뭔가를 놓쳤나요?

조언 부탁드립니다.

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

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

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

이것은 sql 2014에서의 작업이기도 합니다.

날짜 문자열을 구성해야 합니다.사용 중입니다./또는-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 Server 2012가 있는 경우:

날짜 부분이 정수인 경우 함수를 사용할 수 있습니다.

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

날짜 부분이 문자열인 경우 함수를 사용할 수 있습니다.

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

다음과 같이 시도:select DATENAME(DW,GETDATE())

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

dual에서 to_char(sysdate, 'DAY')를 선택합니다. 작업입니다.

사용한

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

등등...

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

언급URL : https://stackoverflow.com/questions/20106871/get-week-day-name-from-a-given-month-day-and-year-individually-in-sql-server

반응형