假設在oracle 11.g數據庫中,我們正在嘗試添加新的僱員,以便我們在當前月份的15個工作日內僱用(假設是這樣) ,那麼我們爲他寫下當月僱傭,否則下個月, 例如假設現在是十二月,如果我僱用的新僱員小於十二月十五日,那麼僱用的月份將是十二月份,但如果是15歲以上,例如15,16歲等等,那麼他的僱用月將是1月,我如何確定每個月僱用的僱員超過15歲? 非常感謝根據他被聘用的日期數量來選擇月份
回答
您可以使用ROUND函數,就像這樣:
select round(<yourdate>, 'MONTH') hire_month from dual
查看Oracle的to_char函數。這將允許您從日期中提取特定值。
to_char(data_value,'DD')會給你一個月的一天爲例。
嘗試:
SELECT (CASE
WHEN EXTRACT(day FROM hiredate) < 15
THEN EXTRACT(month FROM hiredate)
ELSE (EXTRACT(month FROM hiredate) + 1)
END) AS HireMonth
FROM employee
WHERE empno = <your number>
如果你想通過名字月份則:
SELECT (CASE
WHEN EXTRACT(day FROM hiredate) < 15
THEN TO_CHAR(hiredate, 'Month')
ELSE TO_CHAR(ADD_MONTHS(hiredate, 1), 'Month')
END) AS HireMonth
FROM employee
WHERE empno = <your number>
編輯:正如你不能使用CASE,那麼這裏是一個替代方案(儘管使用CASE要好得多):
SELECT TO_CHAR(hiredate, 'Month') AS hireMonth
FROM employee
WHERE EXTRACT(day FROM hiredate) < 15
AND empno = <your number>
UNION ALL
SELECT TO_CHAR(ADD_MONTHS(hiredate, 1), 'Month') AS hireMonth
FROM employee
WHERE EXTRACT(day FROM hiredate) >= 15
AND empno = <your number>
希望它可以幫助...
是的,這將是很好,但我還沒有在這裏研究案件,如果 - 否則我需要它的中期 –
@Dato,我不明白你的意見。你需要什麼? – Ollie
我說我還沒有研究案例,如果還有其他功能,我可以做同樣的事情,而不使用這些功能 –
- 1. 根據月份生成月份日期
- 2. 在月份發生的日期選擇日期選擇日期
- 3. 根據選擇的日期檢測月份?
- 4. 從數據庫中選擇月份和年份的日期
- 5. 根據python的月份查找日期
- 6. 日期選擇與日期,月份和年份單獨的框
- 7. 使用Bootstrap Datepicker選擇月份日期範圍和月份
- 8. 根據日期(月份和年份)篩選結果
- 9. 選擇月份和月份中的所有日期的總和
- 10. 根據系統日期爲月份和期間分配變量
- 11. 選擇當前月份到下個月份的日期範圍日期範圍
- 12. 日期選擇器月份格式
- 13. 只選擇月份和日期
- 14. ExtJS無法在日期選擇器中選擇月份/年份
- 15. Airbnb反應日期範圍選擇器僅顯示當前月份日曆未選擇日期月份日曆
- 16. JQuery的日期選擇器 - 限制日期選擇特定月份和平日
- 17. 日期選擇器月份和年份選定的錯誤
- 18. 日期選擇標籤與月份年份相同的選項
- 19. 根據選擇的日期顯示來自SQL的數據
- 20. 只有日期和月份的Android日期選擇器
- 21. 根據日期選擇行
- 22. JQuery UI日期選擇器禁止選擇的月份
- 23. 日期選擇日月年
- 24. SSAS根據用戶選擇的日期顯示月度或季度數據
- 25. JQuery日期選擇器僅適用於月份和年份
- 26. 根據月份和日期搜索數據Mysql
- 27. 根據日期選擇適用的行
- 28. 根據日期選擇器中選擇的日期禁用日期選擇器的以前的日期
- 29. 選擇最多的日期與給定的年份和月份
- 30. 根據不同日期選擇數值
回合僅在每月的第16天圍捕,在OP需要它圍捕15日。 – Ollie