如何退回本月上半月雇用的表hr.employees
中的员工姓名,即该月的1日至15日。
答案 0 :(得分:1)
SELECT
*
FROM
Employee e
WHERE
TO_NUMBER(TO_CHAR(e.DateHired, 'DD')) <= 15
答案 1 :(得分:1)
从技术上讲,15日不是本月的上半月。这可能是第14次。
要获得上半年你必须计算出当月的最大天数,然后除以2,向下或向上(我总是向下舍入)以得到你月中的天数需要选择。
然后你需要将这个数字添加到月初,减去一个,因为月份从第一个开始。
您还需要限制以确保您在同一个月查看。
select *
from employee
where trunc(datehired) <= trunc(sysdate, 'mm')
+ floor(to_number(to_char(last_day(sysdate),'DD'))/2)
- 1
and trunc(datehired,'mm') = trunc(sysdate, 'mm')