在SQLServer2008中,如何仅从日期提取年份?
在SQLServer2008中,如何仅从日期提取年份。 在DB中,我有一列日期,从中我需要提取年份。 有什么功能吗在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
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())将返回当前年份
可以通过其他时间格式化程序而不是像年一样
- 一天
- 月
- 第二
- 毫秒
- ……等等
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