select ID ,RecordTime ,(case
when TO_NUMBER(TO_CHAR(recodetime,'HH24'))<12 and TO_NUMBER(TO_CHAR(recodetime,'HH24'))>=8 then 'AM'
when TO_NUMBER(TO_CHAR(recodetime,'HH24'))<17 and TO_NUMBER(TO_CHAR(recodetime,'HH24'))>=13 then 'PM'
else null end) AMPM
from RecordList
when TO_NUMBER(TO_CHAR(recodetime,'HH24'))<12 and TO_NUMBER(TO_CHAR(recodetime,'HH24'))>=8 then 'AM'
when TO_NUMBER(TO_CHAR(recodetime,'HH24'))<17 and TO_NUMBER(TO_CHAR(recodetime,'HH24'))>=13 then 'PM'
else null end) AMPM
from RecordList
解决方案 »
- oracle9.2恢复出错
- ORACLE FOR AIX 安装问题,急!
- 关于创建 oracle procedure 的问题
- oracle和 MS sql server可以共存吗??
- OracleiSuitesManagementServer启动失败,一般情况下是什么原因
- 请问有什么工具可以: *.DBF(Vfp6) => ORACLE 8i.1.6
- 我的存储函数中返回记录集时所用的cursor类型为什么不对?
- 如何用pro c 写动态sql,给个例子.急!!!!
- oci读取blob字段的效率问题
- Oracle 查询时可以更改数据,同时最后一行有查询的合计
- oracle新手问题,急。。。。谢谢!!!
- 英文版win2000server上可以安装简体中文版的oracle9i吗
DECODE(SIGN(TO_CHAR(RecordTime,'HH24MISS'),'080000'), -1,NULL,
DECODE(SIGN(TO_CHAR(RecordTime,'HH24MISS'),'120000'),
1,DECODE(SIGN(TO_CHAR(RecordTime,'HH24MISS'),'130000'),-1,NULL,
DECODE(SIGN(TO_CHAR(RecordTime,'HH24MISS'),'170000'),1,NULL,'PM')
),'AM'
)
) AS AMPM
FROM RecordList
select ID ,RecordTime ,'AM' AMPM
from RecordList
WHERE TO_NUMBER(TO_CHAR(recodetime,'HH24'))<=12 and TO_NUMBER(TO_CHAR(recodetime,'HH24'))>=8
union
select ID ,RecordTime ,'PM' AMPM
from RecordList
WHERE TO_NUMBER(TO_CHAR(recodetime,'HH24'))<17 and TO_NUMBER(TO_CHAR(recodetime,'HH24'))>=13
union
select ID ,RecordTime ,NULL AMPM
from RecordList
WHERE TO_NUMBER(TO_CHAR(recodetime,'HH24'))>=17 or TO_NUMBER(TO_CHAR(recodetime,'HH24'))<8
DECODE(SIGN(TO_CHAR(RecordTime,'HH24MISS')-'080000'), -1,NULL,
DECODE(SIGN(TO_CHAR(RecordTime,'HH24MISS')-'120000'),
1,DECODE(SIGN(TO_CHAR(RecordTime,'HH24MISS')-'130000'),-1,NULL,
DECODE(SIGN(TO_CHAR(RecordTime,'HH24MISS')-'170000'),1,NULL,'PM')
),'AM'
)
) AS AMPM
FROM RecordList
这个方法我想过,如果解不出来我就打算用这个方法了,后备方案:-)