如何从表hr.employees
中返回上半月雇用的员工姓名,即当月 1 日至 15 日的日期。
问问题
9381 次
2 回答
1
SELECT
*
FROM
Employee e
WHERE
TO_NUMBER(TO_CHAR(e.DateHired, 'DD')) <= 15
于 2013-07-04T20:35:23.623 回答
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')
于 2013-07-04T20:50:36.137 回答