0

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

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

SELECT time_stamp_column FROM table_name EXTRACT YEAR(time_stamp_column) INTO new_column

有什么建议么?

4

3 回答 3

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

于 2013-11-08T00:09:17.603 回答
0

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

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

输出:

YEAR_VALUE
----------
      2013
于 2013-11-08T00:16:05.870 回答
0

如果年份始终为 4 位,则可以使用TO_NUMBER(SUBSTR(time_stamp_column,1,4)).。如果将值存储为 varchar,这将起作用。

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

于 2013-11-08T00:16:40.750 回答