SQL Server 2005에서 날짜/시간에서 월 및 연도 가져오기

SQL Server의 날짜 시간에서 월+연도(예: '2008년 1월'과 같은)가 필요합니다. 쿼리를 월, 연도별로 그룹화하고 있습니다. 날짜 부분, 변환 등과 같은 함수를 검색하여 찾았지만 그 중 어느 것도 유용하지 않은 것 같습니다. 제가 뭔가 놓치고 있는 건가요? 이 작업을 위한 함수가 있나요?

질문에 대한 의견 (4)
select 
datepart(month,getdate()) -- integer (1,2,3...)
,datepart(year,getdate()) -- integer
,datename(month,getdate()) -- string ('September',...)
해설 (4)
해결책

해당 형식의 문자열로 되돌리려는 경우 해당 형식입니다;

SELECT 
  CONVERT(CHAR(4), date_of_birth, 100) + CONVERT(CHAR(4), date_of_birth, 120) 
FROM customers

다른 형식 옵션은 다음과 같습니다.

해설 (2)

Sql Server 2012년 을 시작으로 사용할 수 있습니다.

SELECT FORMAT(@date, 'yyyyMM')
해설 (3)

사용:

select datepart(mm,getdate())  --to get month value
select datename(mm,getdate())  --to get name of month
해설 (0)

난 그저 재미있는 게임을 중심으로 한 후 이 글을 쓰는 SQL Server 에서 쿼리하지 아웃해야 LINQ.

SELECT 
    DATENAME(mm, article.Created) AS Month, 
    DATENAME(yyyy, article.Created) AS Year, 
    COUNT(*) AS Total 
FROM Articles AS article 
GROUP BY 
    DATENAME(mm, article.Created), 
    DATENAME(yyyy, article.Created) 
ORDER BY Month, Year DESC

다음 전자파에너지를 출력 (예).

Month | Year | Total

January | 2009 | 2
해설 (0)

아래 SQL server 2012년 에서 사용할 수 있습니다.

[서식 (제다테 (), & # 39, 음 yyyy& # 39;)

따라서 정확한 &quot, 6월 2016년 &quot.

해설 (0)

이건 어때?

Select DateName( Month, getDate() ) + ' ' + DateName( Year, getDate() )
해설 (0)

해당 형식은 존재하지 않습니다. 두 가지를 조합해야 합니다,

select convert(varchar(4),getdate(),100)  + convert(varchar(4),year(getdate()))
해설 (0)
( Month(Created) + ',' + Year(Created) ) AS Date
해설 (0)

그렇게 할 수 있는 최선의 방법을 사용하는 것입니다.

dateadd(month,datediff(month,0,*your_date*),0)

it 새벽꺼정 너회의 datetime 유형

해설 (2)

예를 들어, 전체 년 - 2017년 ',' 3월 되돌려줍니다 전체 월 이름

CONCAT(DATENAME(mm, GetDate()), '-', DATEPART(yy, GetDate()))
해설 (1)

첫 번째 달 수 있도록 변환 날짜 및 Order By 그룹순 단일 특성 및 it& # 39 의 속도를 내 경험하십시오.

declare @mytable table(mydate datetime)
declare @date datetime
set @date = '19000101'
while @date < getdate() begin
    insert into @mytable values(@date)
    set @date = dateadd(day,1,@date)
end

select count(*) total_records from @mytable

select dateadd(month,datediff(month,0,mydate),0) first_of_the_month, count(*) cnt
from @mytable
group by dateadd(month,datediff(month,0,mydate),0)
해설 (0)

난 내가 찾은 뒤 이 같은 문제가 둘러보고 있었다.

SELECT DATENAME(yyyy, date) AS year
FROM Income
GROUP BY DATENAME(yyyy, date)

39 의 apc® it& 엄청난거야!

해설 (0)
---Lalmuni Demos---
create table Users
(
userid int,date_of_birth date
)
---insert values---
insert into Users values(4,'9/10/1991')

select DATEDIFF(year,date_of_birth, getdate()) - (CASE WHEN (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()),date_of_birth)) > getdate() THEN 1 ELSE 0 END) as Years, 
MONTH(getdate() - (DATEADD(year, DATEDIFF(year, date_of_birth, getdate()), date_of_birth))) - 1 as Months, 
DAY(getdate() - (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()), date_of_birth))) - 1 as Days,
from users
해설 (0)
cast(cast(sq.QuotaDate as date) as varchar(7))

2006-04년 &quot 보기입니다 "; 형식

해설 (0)

문제는 여기에 대답을 나중에 SQL Server 버전에 대한 SQL Server 2005년, 많은 있다.

select convert (varchar(7), getdate(),20)
--Typical output 2015-04

SQL Server 2005년 데이트였어 없는 함수 도입된 SQL Server 2008년

해설 (0)
  ,datename(month,(od.SHIP_DATE)) as MONTH_

대답: MONTH_ 1월 1월 9월 10월 12월 10월 9월

해설 (0)

예, '다테나미 내려받습니다 월 사용할 수 있습니다 (월, 제 시간에)' 을 사용한다.

해설 (0)

39 의 작동합니까 it& 멋지구리해요.

DECLARE @pYear VARCHAR(4)

DECLARE @pMonth VARCHAR(2)

DECLARE @pDay VARCHAR(2)

SET @pYear  = RIGHT(CONVERT(CHAR(10), GETDATE(), 101), 4)

SET @pMonth = LEFT(CONVERT(CHAR(10), GETDATE(), 101), 2)

SET @pDay   = SUBSTRING(CONVERT(CHAR(10), GETDATE(), 101), 4,2)

SELECT @pYear,@pMonth,@pDay
해설 (0)

그런 다음 작동됨! 그냥 이 사용되는 시도하시겠습니까 아웃해야.

date_format(date,'%Y-%c')
해설 (1)