83

在 sql server 2008 中,如何仅从日期中提取年份。在数据库中,我有一个日期列,我需要从中提取年份。有什么功能吗?

4

9 回答 9

125
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 ....
于 2012-09-15T10:52:16.087 回答
17
select year(current_timestamp)

SQLFiddle 演示

于 2012-09-15T10:52:09.003 回答
13

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

句法:

YEAR ( date )

有关更多信息,请查看此处

于 2012-09-15T11:01:56.577 回答
5
year(table_column)

例子:

select * from mytable where year(transaction_day)='2013' 
于 2015-04-27T07:53:05.890 回答
4

SQL 服务器脚本

declare @iDate datetime
set @iDate=GETDATE()

print year(@iDate) -- for Year

print month(@iDate) -- for Month

print day(@iDate) -- for Day
于 2016-10-18T08:51:18.193 回答
1

年函数剂量,像这样:

select year(date_column) from table_name

于 2019-01-13T12:08:23.283 回答
0

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

于 2012-09-15T10:53:02.290 回答
0
---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
于 2013-10-08T09:33:57.143 回答
0

只需使用

选择日期部分(年,某日期列)

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

可以传递其他时间格式化程序而不是 YEAR

  • 第二
  • 毫秒
  • ...ETC。
于 2016-08-04T20:53:55.273 回答