我想在我的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中有date_part函数来完成这项工作。第一个参数是需要被提取的部分,第二个参数是时间戳记:
例如: select date_part('year', timestamp '2001-02-16 20:38:40');
进一步的细节:postgres documentation
答
SQL服务器
如果您有问题,请确保您的列实际上是一个时间戳,而不仅仅是一个字符串:
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('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
使用的是什么DBMS? – Siyual
你使用的是什么dbms?你尝试过搜索吗?这很容易完成。 –
在标准的SQL中,这将是'提取(年份from_column)' –