83

SQL Server 2008 で、日付から年だけを抽出する方法。DBには日付の列があり、そこから年を抽出する必要があります。そのための機能はありますか?

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 に答える
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

単に使用する

SELECT DATEPART(YEAR, SomeDateColumn)

指定したオプションに対応する DATETIME 型の部分を返します。SO DATEPART(YEAR, GETDATE()) は現在の年を返します。

YEAR の代わりに他の時間フォーマッタを渡すことができます

  • 2番目
  • ミリ秒
  • ...等。
于 2016-08-04T20:53:55.273 に答える
0

DATEPART (yyyy, date_column) を使用して年を抽出できます。一般に、DATEPART 関数は、日付値の特定の部分を抽出するために使用されます。

于 2012-09-15T10:53:02.290 に答える