在SQLServer2008中,如何仅从日期提取年份?

在SQLServer2008中,如何仅从日期提取年份?,sql,sql-server-2008,datetime,extract,Sql,Sql Server 2008,Datetime,Extract,在SQLServer2008中,如何仅从日期提取年份。 在DB中,我有一列日期,从中我需要提取年份。 有什么功能吗 select year(current_timestamp) 或者如果你需要它在另一张桌子上 update t set column = year(t1.date_column) from table_source t1 join table_target t on (join condition) where .... (yyyy,dat

在SQLServer2008中,如何仅从日期提取年份。 在DB中,我有一列日期,从中我需要提取年份。 有什么功能吗

select year(current_timestamp)

或者如果你需要它在另一张桌子上

 update t
   set column = year(t1.date_column)
     from table_source t1
     join table_target t on (join condition)
    where ....
(yyyy,date_列)可用于提取年份。通常,DATEPART函数用于提取日期值的特定部分。

您可以在sql中使用
year()
函数从指定日期获取年份

语法:

YEAR ( date )
更多信息

例如:

select * from mytable where year(transaction_day)='2013' 
简单使用

选择DATEPART(年份,SomeDateColumn)

它将返回DATETIME类型中与您指定的选项相对应的部分。因此DATEPART(YEAR,GETDATE())将返回当前年份

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

  • 一天
  • 第二
  • 毫秒
  • ……等等
SQL Server脚本

declare @iDate datetime
set @iDate=GETDATE()

print year(@iDate) -- for Year

print month(@iDate) -- for Month

print day(@iDate) -- for Day

年函数剂量,如下所示:


从表名称中选择年份(日期列)

这里我不想要当前日期时间。我已经有了datetime专栏。如何有一个查询来提取它;如何将今年存储在表中的另一列中?最好是单行查询。请您解释一下以下错误:将表达式转换为数据类型datetime时出现算术溢出错误。我猜您是在尝试将字符串转换为日期。并且服务器无法将其转换为datetime类型,因为它不支持该格式。将表达式转换为数据类型datetime时可能出现算术溢出错误的重复。我不明白是什么?这就是我得到的错误?得到了,它被分配为int。已经有6年以上的答案这样说(有更多细节)。在回答老问题时,请确保您的答案与现有答案有显著不同或质量更好的答案。
year(table_column)
select * from mytable where year(transaction_day)='2013' 
declare @iDate datetime
set @iDate=GETDATE()

print year(@iDate) -- for Year

print month(@iDate) -- for Month

print day(@iDate) -- for Day