developer tip

SQL Server 2008의 날짜에서 연도 만 추출하는 방법은 무엇입니까?

optionbox 2020. 11. 1. 17:38
반응형

SQL Server 2008의 날짜에서 연도 만 추출하는 방법은 무엇입니까?


SQL Server 2008에서 날짜에서 연도 만 추출하는 방법. DB에는 연도를 추출해야하는 날짜 열이 있습니다. 그것에 대한 기능이 있습니까?


year(@date)
year(getdate())
year('20120101')

update table
set column = year(date_column)
whre ....

또는 다른 테이블에 필요한 경우

 update t
   set column = year(t1.date_column)
     from table_source t1
     join table_target t on (join condition)
    where ....

select year(current_timestamp)

SQLFiddle 데모


year()SQL의 함수를 사용 하여 지정된 날짜에서 연도를 가져올 수 있습니다 .

통사론:

YEAR ( date )

자세한 내용은 여기에서 확인하세요.


year(table_column)

예:

select * from mytable where year(transaction_day)='2013' 

SQL Server 스크립트

declare @iDate datetime
set @iDate=GETDATE()

print year(@iDate) -- for Year

print month(@iDate) -- for Month

print day(@iDate) -- for Day

다음과 같이 년 함수 복용량 :

select year(date_column) from table_name


DATEPART (yyyy, date_column)를 사용하여 연도를 추출 할 수 있습니다. 일반적으로 DATEPART 함수는 날짜 값의 특정 부분을 추출하는 데 사용됩니다.


---Lalmuni Demos---
create table Users
(
userid int,date_of_birth date
)
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

간단히 사용

SELECT DATEPART (YEAR, SomeDateColumn)

지정한 옵션에 해당하는 DATETIME 유형의 일부를 반환합니다. 따라서 DATEPART (YEAR, GETDATE ())는 현재 연도를 반환합니다.

Can pass other time formatters instead of YEAR like

  • DAY
  • MONTH
  • SECOND
  • MILLISECOND
  • ...etc.

참고URL : https://stackoverflow.com/questions/12436743/how-to-extract-only-the-year-from-the-date-in-sql-server-2008

반응형