首頁 > 資料庫 > mysql教程 > 如何正確比較 Oracle SQL 中的日期以統計特定日期之後僱用的員工?

如何正確比較 Oracle SQL 中的日期以統計特定日期之後僱用的員工?

Barbara Streisand
發布: 2025-01-17 10:46:08
原創
252 人瀏覽過

How to Correctly Compare Dates in Oracle SQL to Count Employees Hired After a Specific Date?

Oracle SQL 日期比較及員工入職日期計數

問題:

我需要統計1994年6月20日之後入職的員工數量,但遇到了錯誤:

<code class="language-sql">Select employee_id, count(*)
From Employee
Where to_char(employee_date_hired, 'DD-MON-YY') > '31-DEC-95'; </code>
登入後複製

錯誤:

"JUN' invalid identifier."

解答:

字串與日期比較:

錯誤的原因在於將字串 ('31-DEC-95') 與日期值 (employee_date_hired) 進行比較。要進行日期比較,需要使用 TO_DATE() 函數將字串轉換為日期,或使用日期字面量。

1. TO_DATE() 函數:

<code class="language-sql">select employee_id
from employee
where employee_date_hired > to_date('31-DEC-95','DD-MON-YY')</code>
登入後複製

2. 日期字面量:

如果希望在不同區域設定下保持一致的行為並進行精確的日期比較,可以使用日期字面量。

<code class="language-sql">select employee_id
from employee
where employee_date_hired > date '1995-12-31'</code>
登入後複製

技巧:

  • 指定完整的年份 (YYYY) 以避免混淆。
  • 使用 NLS_DATE_LANGUAGE 和 NLS_DATE_FORMAT 設定來自訂日期格式。
  • 對於計數查詢,需要按 employee_id 分組:
<code class="language-sql">select employee_id, count(*)
from employee
where employee_date_hired > date '1995-12-31'
group by employee_id</code>
登入後複製

以上是如何正確比較 Oracle SQL 中的日期以統計特定日期之後僱用的員工?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板