как извлечь только год с даты в sql server 2008?


в sql server 2008, как извлечь только год от даты. В БД у меня есть столбец для даты, из которого мне нужно извлечь год. Есть ли функция для этого?

8   51   2012-09-15 14:51:09

8 ответов:

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 Script

declare @iDate datetime
set @iDate=GETDATE()

print year(@iDate) -- for Year

print month(@iDate) -- for Month

print day(@iDate) -- for Day

DATEPART(гггг, 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

просто использовать

выберите DATEPART (год, SomeDateColumn)

он вернет часть типа DATETIME, которая соответствует указанному вами параметру. Таким образом, DATEPART(YEAR, GETDATE()) вернет текущий год.

может пройти другой формат времени вместо года, как

  • день
  • месяц
  • второй
  • МС
  • ...так далее.