sql中如何提取从数据库中所获得时间的年份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中如何提取从数据库中所获得时间的年份相关的知识,希望对你有一定的参考价值。

SQL从时间字段值中获取年份使用DATENAME()函数。

DATENAME()函数语法:DATENAME(param,date)

date是时间字段名 或一个时间值

param是指定要返回日期部分的参数,包括下面几种:

获取年份就可以这样写 datename(year,date) 或 datename(yy,date) 

已系统当前时间getdate()为例,3种写法获取年份结果如图:

另外,DATENAME返回的是一个字符串,如果需要返回整数,可以使用DATEPART ( datepart , date ) ,语法与DATENAME相同

参考技术A

SQL从时间字段值中获取年份使用DATENAME()函数。

DATENAME()函数语法:DATENAME(param,date)。

date是时间字段名 或一个时间值param是指定要返回日期部分的参数,包括下面几种:

获取年份就可以这样写 datename(year,date) 或 datename(yy,date) 。

已系统当前时间getdate()为例,3种写法获取年份。另外,DATENAME返回的是一个字符串,如果需要返回整数,可以使用DATEPART ( datepart , date ) ,语法与DATENAME相同。

获取日期字段的年select to_char(sysdate,'yyyy') as year from dual或者:(指定日期)select to_char(to_date('2013/08/08','yyyy/mm/dd'),'yyyy') as year from dual

获取日期字段的月select to_char(sysdate,'mm') as month from dual

获取日期字段的日select to_char(sysdate,'dd') as day  from dua

参考技术B 如果是想获得当前数据库服务器的时间年份:year(getdate())如果是想获得数据表中某时间列的年份:year(列名) 参考技术C DATEPART(YEAR,getdate()) 参考技术D 根据年龄字段推算出出生年份:
select name 姓名, year(NOW())-age as 出生年份 from student;

如何仅从 sql server 2008 中的日期中提取年份?

【中文标题】如何仅从 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中如何提取从数据库中所获得时间的年份的主要内容,如果未能解决你的问题,请参考以下文章

如何从日期字符串中提取年份?

如何仅从 sql server 2008 中的日期中提取年份?

如何从熊猫数据框中提取日期/年份/月份?

如何从包含文本的熊猫数据框中的列中提取年份(或日期时间)

如何在sequelize ORM中使用从时间戳中选择并提取日期到月份和年份?

如何使用 pyspark 从 aws 胶水的时间戳中提取年份