2016-12-14 82 views
-7

我想在我的sql查詢中只選擇年份部分的時間戳。數據的格式如下:我想在我的sql查詢中只選擇年份部分的時間戳

2016-12-13 23:59:58 
2016-12-07 23:59:58 
2016-12-01 23:59:58 

我希望我的查詢結果只返回「2016」。

+1

使用的是什麼DBMS? – Siyual

+0

你使用的是什麼dbms?你嘗試過搜索嗎?這很容易完成。 –

+0

在標準的SQL中,這將是'提取(年份from_column)' –

回答

0

如果SQL Server,做

SELECT DATEPART(year,'2016-12-13 23:59:58') 

,你會得到2016如果其他RDBMS,也許類似的東西。

希望有所幫助。

0

在Postgres中有date_part函數來完成這項工作。第一個參數是需要被提取的部分,第二個參數是時間戳記:

例如: select date_part('year', timestamp '2001-02-16 20:38:40');

進一步的細節:postgres documentation

0

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