如何仅从 sql server 2008 中的日期中提取年份?
Posted
技术标签:
【中文标题】如何仅从 sql server 2008 中的日期中提取年份?【英文标题】:how to extract only the year from the date in sql server 2008? 【发布时间】:2012-09-08 08:09:57 【问题描述】:在 sql server 2008 中,如何仅从日期中提取年份。 在数据库中,我有一个日期列,我需要从中提取年份。 有什么功能吗?
【问题讨论】:
showing only the year portion of a date 的可能重复项 【参考方案1】:年函数剂量,像这样:
select year(date_column) from table_name
【讨论】:
已经有 6 岁以上的答案这么说(有更多细节)。在回答旧问题时,请确保您的答案提供的答案与现有答案有很大不同或质量更高。【参考方案2】:SQL 服务器脚本
declare @iDate datetime
set @iDate=GETDATE()
print year(@iDate) -- for Year
print month(@iDate) -- for Month
print day(@iDate) -- for Day
【讨论】:
【参考方案3】:简单使用
选择 DATEPART(YEAR, SomeDateColumn)
它将返回与您指定的选项相对应的 DATETIME 类型部分。所以 DATEPART(YEAR, GETDATE()) 将返回当前年份。
可以传递其他时间格式化程序而不是像 YEAR 这样的
天 月 第二次 毫秒 ...等【讨论】:
【参考方案4】:year(table_column)
例子:
select * from mytable where year(transaction_day)='2013'
【讨论】:
【参考方案5】:---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
【讨论】:
【参考方案6】: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 ....
【讨论】:
这里我不想要当前的日期时间。我已经有一个日期时间列。如何有一个查询来提取它? 这行得通;如何将今年存储在表格的另一列中?最好有单行查询。 您能否解释一下以下错误:将表达式转换为数据类型日期时间的算术溢出错误。 我猜你正在尝试将字符串转换为日期。并且服务器无法将其转换为 datetime 类型,因为它不支持该格式。【参考方案7】:您可以在sql中使用year()
函数来获取指定日期的年份。
语法:
YEAR ( date )
欲了解更多信息check here
【讨论】:
将表达式转换为数据类型日期时间的算术溢出错误。看不懂是什么?这是我得到的错误? 知道了,它被分配为int。【参考方案8】:DATEPART(yyyy, date_column) 可用于提取年份。通常,DATEPART 函数用于提取日期值的特定部分。
【讨论】:
【参考方案9】:select year(current_timestamp)
SQLFiddle demo
【讨论】:
以上是关于如何仅从 sql server 2008 中的日期中提取年份?的主要内容,如果未能解决你的问题,请参考以下文章
仅从 sql server 中的日期数据类型中获取日期 [重复]
如何:使用 SQL Server 2008 为自动更新修改日期创建触发器
如何在 SQL Server 2008 的 where 子句中仅比较日期并忽略时间