如何从sql server 2008中只提取一年的date?

在sql server 2008中,如何从date只提取年份。 在数据库我有一个date列,从那我需要提取一年。 有没有什么function?

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演示

您可以在sql中使用year()函数来获取指定date的年份。

句法:

 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 

DATEPART(yyyy,date_column)可以用来提取年份。 通常,DATEPART函数用于提取date值的特定部分。

 ---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(年,SomeDateColumn)

它将返回与您指定的选项相对应的DATETIMEtypes的部分。 SO DATEPART(YEAR,GETDATE())将返回当前年份。

可以通过其他时间格式化程序而不是像YEAR一样

  • 第二
  • 毫秒
  • …等等。