我对SQL很新,需要从具有日期的列中提取年份,格式如下:2003-05-07T00:00:00 + 02:00。我想用年份创建一个新列。
我假设它是一个EXTRACT()语句,但在那之后我就被卡住了。
SELECT time_stamp_column FROM table_name EXTRACT YEAR(time_stamp_column)INTO new_column
有什么建议吗?
答案 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的答案。