如何编写仅显示年份的Oracle SQL查询?
Oracle SQL仅显示年份的几种实现方法
嘿,我来帮你搞定这个需求!在Oracle里提取并仅显示日期中的年份,有几种简单实用的方法,下面给你详细说明:
方法1:使用EXTRACT函数(返回数字类型年份)
EXTRACT是SQL标准函数,能直接从日期/时间戳中提取指定的部分,用来拿年份非常直观。它返回的是数字类型的年份值,适合后续需要做数值计算的场景。
示例代码:
SELECT EXTRACT(YEAR FROM hire_date) AS hire_year FROM employees;
这里hire_date是你的日期列名,hire_year是自定义的结果列别名,你可以根据实际表和列名替换。
方法2:使用TO_CHAR函数(返回字符串类型年份)
如果需要将年份以字符串形式输出(比如做格式化展示),可以用TO_CHAR函数,通过指定格式模型'YYYY'来提取4位年份。
示例代码:
SELECT TO_CHAR(hire_date, 'YYYY') AS hire_year FROM employees;
如果需要把字符串类型的年份转成数字,只需要嵌套TO_NUMBER函数即可:
SELECT TO_NUMBER(TO_CHAR(hire_date, 'YYYY')) AS hire_year FROM employees;
额外注意事项
- 确保你的目标列是
DATE或TIMESTAMP类型,如果是存储为字符串的日期,需要先使用TO_DATE函数转换为日期类型再处理,比如:
这里的SELECT EXTRACT(YEAR FROM TO_DATE(str_date_column, 'YYYY-MM-DD')) AS year FROM your_table;'YYYY-MM-DD'要和你字符串日期的实际格式匹配。 - 如果只需要获取当前年份,可以直接用
EXTRACT(YEAR FROM SYSDATE)或者TO_CHAR(SYSDATE, 'YYYY')。
内容的提问来源于stack exchange,提问作者surya srujana
相关产品推荐
相关产品推荐

