oracle库 与日期相关的问题!让人郁闷的问题!(50)

  • 主题发起人 主题发起人 xnnfan126
  • 开始时间 开始时间
X

xnnfan126

Unregistered / Unconfirmed
GUEST, unregistred user!
语句如下:select kesmc,riq,zhiy,banc,zhibr,kaissj,jiessj,kesFQ,(case when substr(jiessj,12,2)='23' then (to_char(to_date(substr(jiessj,1,8)||to_char(to_number(substr(jiessj,9,2))+1)||' 00'||substr(14,6),'yyyy-MM-dd HH24:mi:SS'),'yyyy-MM-dd HH24:mi:SS'))else (to_char(to_date(substr(jiessj,1,11)||to_char(to_number(substr(jiessj,12,2))+1||substr(jiessj,14,6),'yyyy-MM-dd HH24:mi:SS'),'yyyy-MM-dd HH24:mi:SS')) end) yanhsjFrom gzjjb_paibZX where shifmz=0 and '2009-10-20 16:38:24' between kaissj and (case when substr(jiessj,12,2)='23' then (to_char(to_date(substr(jiessj,1,8)||to_char(to_number(substr(jiessj,9,2))+1)||' 00'||substr(14,6),'yyyy-MM-dd HH24:mi:SS'),'yyyy-MM-dd HH24:mi:SS'))else (to_char(to_date(substr(jiessj,1,11)||to_char(to_number(substr(jiessj,12,2))+1||substr(jiessj,14,6),'yyyy-MM-dd HH24:mi:SS'),'yyyy-MM-dd HH24:mi:SS')) end)已知kaissj:='2009-10-20 08:00:00'jiessj:='2009-10-20 18:00:00'出现的问题:ORA-01847:月份中的日必须介于1和当月最后一日值之间可这个问题是偶尔出现一次,但实在是无从下手,无法修改(从语句上看是正确的)
 
將to_Char改為To_TimeStamp
 
就一条记录????应该有很多条记录吧。我看你的内容,就是将日期加1或是小时+1。如果有一天是31日,加1后就变成32日,就会报这个错误。(某些月的30日或是29日也一样)如果有一天是23:01,小1小时后就变成24:01,也会报错。
 
zbdzjx is right
 
To zbdzjx :你所说的问题是不存在的,我说过,这个问题只是偶尔出现一次,并且所有人(人数较多)在使用时都会用这语句,而且出现错误时对应的日期也都是月份的中旬.
 
To zbdzjx:后又再次推敲你所说的,的确是这样的。但我有一点不明白,大家都用同一个程序,为什么就只有一,两个会出现这个问题,而且回想上次出现这个问题的时间大致是在8月20号左右(但是9月份并未出现),而且,这次出现的时间也是在20号(10月).。我想这个问题是不是只有在含31号的月中出现。但以这个想法推去,应该在20号这一天所有的程序都不能工作才对?? 不知何云吔?!还请大家帮想想这其中的原由。
 
多人接受答案了。
 
后退
顶部