我对 SQL 相当陌生,需要从具有日期的列中提取年份,格式如下:2003-05-07T00:00:00+02:00。我想创建一个只有年份的新列。
我假设它是一个 EXTRACT() 语句,但在那之后我被困住了。
SELECT time_stamp_column FROM table_name EXTRACT YEAR(time_stamp_column) INTO new_column
有什么建议么?
没有理由在您的数据库中有重复的数据。只要您想知道年份,只需查询 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
你用的是甲骨文吗?如果是这样,你可以EXTRACT
像你说的那样使用,但语法如下:
SELECT EXTRACT(YEAR FROM SYSTIMESTAMP) AS year_value FROM dual;
输出:
YEAR_VALUE ---------- 2013
如果年份始终为 4 位,则可以使用TO_NUMBER(SUBSTR(time_stamp_column,1,4))
.。如果将值存储为 varchar,这将起作用。
如果它是时间戳/日期,则使用 Jade 的答案。