从时间戳提取年份到新列

时间:2013-11-08 00:05:05

标签: sql timestamp extract

我对SQL很新,需要从具有日期的列中提取年份,格式如下:2003-05-07T00:00:00 + 02:00。我想用年份创建一个新列。

我假设它是一个EXTRACT()语句,但在那之后我就被卡住了。

SELECT time_stamp_column FROM table_name EXTRACT YEAR(time_stamp_column)INTO new_column

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

没有理由在数据库中存在重复数据。只要您想知道年份,就可以查询time_stamp_column的年份。

SELECT YEAR(time_stamp_column) FROM tablename WHERE YEAR(time_stamp_column) = 2013

您也可能会发现这有用:http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html

答案 1 :(得分:0)

您使用的是Oracle吗?如果是这样,你可以像你说的那样使用EXTRACT,但语法如下:

SELECT EXTRACT(YEAR FROM SYSTIMESTAMP) AS year_value FROM dual;

输出:

YEAR_VALUE
----------
      2013 

答案 2 :(得分:0)

如果年份总是4位数,您可以使用TO_NUMBER(SUBSTR(time_stamp_column,1,4)) .. 如果值存储为varchar。

,这将起作用

如果是时间戳/日期,请使用Jade的答案。