Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membandingkan Tarikh dengan betul dalam Oracle SQL untuk Mengira Pekerja yang Diupah Selepas Tarikh Tertentu?

Bagaimana untuk Membandingkan Tarikh dengan betul dalam Oracle SQL untuk Mengira Pekerja yang Diupah Selepas Tarikh Tertentu?

Barbara Streisand
Barbara Streisandasal
2025-01-17 10:46:08255semak imbas

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

Perbandingan tarikh Oracle SQL dan kiraan tarikh penyertaan pekerja

Soalan:

Saya perlu mengira bilangan pekerja yang menyertai selepas 20 Jun 1994, tetapi saya mengalami ralat:

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

Ralat:

"JUN' pengecam tidak sah."

Jawapan:

Perbandingan rentetan dan tarikh:

Ralat berlaku apabila membandingkan rentetan ('31-DEC-95') dengan nilai tarikh (tarikh_pekerja_diupah). Untuk melakukan perbandingan tarikh, anda perlu menukar rentetan kepada tarikh menggunakan fungsi TO_DATE() atau menggunakan literal tarikh.

1. TO_DATE() fungsi:

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

2. Tarikh tersurat:

Jika anda mahukan gelagat yang konsisten merentas tempat yang berbeza dan perbandingan tarikh yang tepat, anda boleh menggunakan literal tarikh.

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

Petua:

  • Nyatakan tahun lengkap (YYYY) untuk mengelakkan kekeliruan.
  • Gunakan tetapan NLS_DATE_LANGUAGE dan NLS_DATE_FORMAT untuk menyesuaikan format tarikh.
  • Untuk pertanyaan kiraan, pengumpulan mengikut employee_id diperlukan:
<code class="language-sql">select employee_id, count(*)
from employee
where employee_date_hired > date '1995-12-31'
group by employee_id</code>

Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Tarikh dengan betul dalam Oracle SQL untuk Mengira Pekerja yang Diupah Selepas Tarikh Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn