AND papf.start_date >= to_date(substr(p_date, 1, 6) || ’01’, ’YYYY-MM-DD’) – 1
AND papf.start_date <= last_day(to_date(p_date, 'YYYY-MM-DD')) + 1; 这两行代码有什么问题啊?挂到ebs上的时候显示——原因:由于 ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间,papf 是基表per_all_people_f,用这条语句判断员工的是否在本月入职。请高人指点啊!
AND papf.start_date <= last_day(to_date(p_date, 'YYYY-MM-DD')) + 1; 这两行代码有什么问题啊?挂到ebs上的时候显示——原因:由于 ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间,papf 是基表per_all_people_f,用这条语句判断员工的是否在本月入职。请高人指点啊!
解决方案 »
- oracle 表与表之间如何将海量轻松数据转移
- 配置数据源的问题。。。。。。
- 关于MS SQL Server 2000的Enterprise版和Developer版
- oracle 子查询问题
- 求助各路朋友指点一下一段sql语法问题
- 问大家Oracle9i和Oracle10g是什么关系?后面的字母i和g分别表示什么 ?是什么单词的缩写?知者进来领分!
- *******无法进入企业管理器************
- 在存储过程中修改表结构!急用
- update一个日期型的字段怎么写SQL ????
- oracle 执行计划里的cost(%CPU)与consistent gets之间是什么关系? 为什么会存在consistent gets大,而 Cost 小
- sql 两行数据前后对比
- 急:创建外键时no matching unique or primary key for this column-list
这样子再 || ’01’,结果应该是‘2012-001’当然不符合转换为日期型的格式了。
改动:AND papf.start_date >= to_date(substr(p_date, 1, 7) || ’01’, ’YYYY-MM-DD’) – 1
AND papf.start_date <= last_day(to_date(p_date, 'YYYY-MM-DD')) + 1;
select substr(per.start_date, 1, 7) start_date from per_all_people_f per;
显示的结果是这样的:1996120,1987010,1995010等这样的,我看了一下start_date的格式是这样的:1996-12-4,1987-1-1,1995-1-1(select start_date from per_all_people_f per;)这些,这该怎么理解呢?谢谢您!
这个的显示结果是正确的:1999-12,我是这样理解的,是不是substr函数里面的第一个参数必须是date型才能转换成想要的date型?可以这样理解吗?
RETURN NUMBER
IS
val DATE;
BEGIN
val := TO_DATE (NVL (parmin, 'a'), 'yyyy-mm-dd hh24:mi:ss');
RETURN 1;
EXCEPTION
WHEN OTHERS
THEN
RETURN 0;
end isdate;select * from per where isdate(start_date)=0
START_DATE DATE