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:
<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!