SQL Server 2008では、日付から年のみを抽出する方法。 DBには日付の列があります。その中から年を抽出する必要があります。そのための機能はありますか?
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)
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
---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 (yyyy、date_column)を使って年を抽出できます。一般に、DATEPART関数は日付値の特定の部分を抽出するために使用されます。
次のように年関数の線量
select year(date_column) from table_name
単に使う
SELECT DATEPART(年、SomeDateColumn)
指定したオプションに対応するDATETIME型の部分が返されます。 SO DATEPART(YEAR、GETDATE())は現在の年を返します。
YEARのように他の時間フォーマッタを渡すことができます