我试图在我的SQL查询中仅选择时间戳的年份部分。数据采用以下格式:
2016-12-13 23:59:58
2016-12-07 23:59:58
2016-12-01 23:59:58
我希望我的查询结果只返回" 2016"例如。
答案 0 :(得分:0)
如果是SQL Server,请执行
SELECT DATEPART(year,'2016-12-13 23:59:58')
你将获得2016年。如果是其他一些RDBMS,可能是类似的东西。
希望有所帮助。
答案 1 :(得分:0)
在Postgres中有date_part函数可以完成这项工作。第一个参数是需要提取的部分,第二个参数是时间戳:
例如:
select date_part('year', timestamp '2001-02-16 20:38:40');
了解更多详情:postgres documentation
答案 2 :(得分:0)
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
<强>的Oracle 强>
SELECT
EXTRACT(YEAR FROM (TO_DATE('2016-12-13 23:59:58', 'YYYY-MM-DD HH24:MI:SS') )) as YR
FROM TABLENAME
类似地
SELECT
EXTRACT(YEAR FROM (TO_DATE(DateColumn, 'YYYY-MM-DD HH24:MI:SS') )) as YR
FROM TABLENAME