Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我试图在sql查询中只选择时间戳的年份部分_Sql - Fatal编程技术网

我试图在sql查询中只选择时间戳的年份部分

我试图在sql查询中只选择时间戳的年份部分,sql,Sql,我试图在sql查询中只选择时间戳的年份部分。数据格式如下: 2016-12-13 23:59:58 2016-12-07 23:59:58 2016-12-01 23:59:58 例如,我希望我的查询结果只返回2016。如果是SQL Server,请执行 SELECT DATEPART(year,'2016-12-13 23:59:58') 你将得到2016年。如果是其他RDBMS,可能是类似的 希望这能有所帮助。在Postgres中有日期部分功能来完成这项工作。第一个参数是需要提取的部分,

我试图在sql查询中只选择时间戳的年份部分。数据格式如下:

2016-12-13 23:59:58
2016-12-07 23:59:58
2016-12-01 23:59:58
例如,我希望我的查询结果只返回2016。

如果是SQL Server,请执行

SELECT DATEPART(year,'2016-12-13 23:59:58')
你将得到2016年。如果是其他RDBMS,可能是类似的


希望这能有所帮助。

在Postgres中有日期部分功能来完成这项工作。第一个参数是需要提取的部分,第二个参数是时间戳:

例如: 选择日期“年”,时间戳“2001-02-16 20:38:40”

有关更多详细信息:

SQL Server

如果遇到问题,请确保列实际上是时间戳,而不仅仅是字符串:

SELECT 
DATEPART(YEAR, CONVERT(DATETIME, '2016-12-13 23:59:58')) as YR
FROM TABLENAME
在实际查询中,您可能希望将“2016-12-13 23:59:58”替换为列名

SELECT 
DATEPART(YEAR, CONVERT(DATETIME, DateColumn)) as YR
FROM TABLENAME
神谕

同样地

SELECT 
EXTRACT(YEAR FROM (TO_DATE(DateColumn, 'YYYY-MM-DD HH24:MI:SS') )) as YR
FROM TABLENAME

您使用的是什么数据库管理系统?你试过搜索吗?这很容易实现。在标准SQL中,这是从列中提取的年份。SQL Server可以是YearYourColumn或DatePartYear,YourColumn。同样,这在谷歌上很容易找到。这是懒惰。你本可以在谷歌上搜索这个,并在几秒钟内得到答案。可能是重复的
SELECT 
EXTRACT(YEAR FROM (TO_DATE(DateColumn, 'YYYY-MM-DD HH24:MI:SS') )) as YR
FROM TABLENAME