You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle数据库筛选工龄≥15年员工并新增工龄列问题求助

解决Oracle数据库工龄查询的问题

错误原因

你使用的DATE_FORMAT是MySQL专属函数,Oracle数据库不支持该函数,因此会抛出ORA-00904: "DATE_FORMAT": invalid identifier错误。

正确的SQL语句

要筛选工龄≥15年的员工并在结果中展示工龄,使用Oracle的MONTHS_BETWEEN函数计算工龄更准确,完整语句如下:

SELECT 
    FIRST_NAME || ' ' || LAST_NAME AS "Fn and Ln",
    TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)/12) AS 工龄
FROM HR.EMPLOYEES
WHERE TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)/12) >= 15;

语句说明

  • FIRST_NAME || ' ' || LAST_NAME:Oracle中用||拼接字符串,比嵌套CONCAT更简洁,最终得到员工全名。
  • TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)/12):
    • MONTHS_BETWEEN(SYSDATE, HIRE_DATE)计算当前日期与入职日期的月份差值;
    • 除以12将月份差转换为年数,TRUNC函数去除小数部分,得到整数形式的工龄(以年为单位)。
  • WHERE子句通过相同的工龄计算逻辑,筛选出工龄≥15年的员工。

内容的提问来源于stack exchange,提问作者Octopus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 15:55:21