作者:牧高风_457 | 来源:互联网 | 2022-12-07 00:53
我需要打印当前日历月作为注册月份的记录.
我用sysdate
这个功能.但是,我不确定这是否正确.
我的代码是,
select * from student where sysdate,trunc('mm') = enrolled_month;
我只需要一些方法来使用sysdate
函数打印当前月份.
任何形式的帮助将不胜感激.
提前致谢.
1> 小智..:
我相信你需要的EXTRACT
功能:
select *
from student
where enrolled_mOnth= extract(month from sysdate);
2> Tim Biegelei..:
这是另一个使用选项TO_CHAR
:
SELECT *
FROM student
WHERE TO_CHAR(sysdate, 'Month') = enrolled_month;
但我认为将注册月份名称(可能还有其他组件)与注册日期分开存储并不是一个好主意.只需存储一次日期,然后使用Oracle的日期函数来处理该数据.
3> 小智..:
您可以使用
SELECT TO_CHAR(SYSDATE, 'MON') FROM DUAL;
要么
SELECT TO_CHAR(SYSDATE, 'MM') FROM DUAL;
要么
SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL;
但是,如果您的学生表包含超过一年的数据,您可能还需要考虑年份.