我用的是oracle10g, 碰到一个怪问题1) select to_char(TO_DATE(case when '2011.05.11' > '2011.05.12' then '2011.05.11' else '2011.05.12' end,'YYYY.MM.DD'),'YYYY.MM.DD')
from dual;
得到的是 0000.00.002) select case when '2011.05.11' > '2011.05.12' then '2011.05.11' else '2011.05.12' end
from dual;
得到 2011.05.12
select to_char(TO_DATE('2011.05.12','YYYY.MM.DD'),'YYYY.MM.DD')
from dual;
得到2011.05.12我2) 就是把1) 拆开来做 就可以得到正确的日期,用1) 直接做就是0000.00.00
谁碰到过这类问题,怎么解决。郁闷中
from dual;
得到的是 0000.00.002) select case when '2011.05.11' > '2011.05.12' then '2011.05.11' else '2011.05.12' end
from dual;
得到 2011.05.12
select to_char(TO_DATE('2011.05.12','YYYY.MM.DD'),'YYYY.MM.DD')
from dual;
得到2011.05.12我2) 就是把1) 拆开来做 就可以得到正确的日期,用1) 直接做就是0000.00.00
谁碰到过这类问题,怎么解决。郁闷中
解决方案 »
- ORA-20000: Cannot parse for clause: FORCOLUMNS size 1
- oracle ExecuteNonQuery 返回值总是为-1
- oracle10G 数据库中建多个用户,用户之间不能查看表问题
- 循环插入数据
- ORACLE 如何遍历筛选用户表的记录
- SQL多条件分支UPDATE
- 对表的字段建立索引后怎么使用??
- 谁能提供oracle7.x for sco unix 5.x的有效下载,100分相送
- pro c 在vc下链接的问题(再现等待
- Oracle 9i与win xp的问题!
- 两个服务器oracle中表格的insert into table select * from anothertable;
- 如何处理:超出表空间 'USERS' 的空间限额
sys@SZTYORA> select to_char(TO_DATE(case when '2011.05.11' > '2011.05.12' then '2011.05.11' else '2011.05.12' end,'YYYY.MM.DD'),'YYYY.MM.DD')
2 from dual;TO_CHAR(TO_DATE(CASE
--------------------
2011.05.12sys@SZTYORA> select case when '2011.05.11' > '2011.05.12' then '2011.05.11' else '2011.05.12' end
2 from dual;CASEWHEN'2011.05.11'
--------------------
2011.05.12sys@SZTYORA> select to_char(TO_DATE('2011.05.12','YYYY.MM.DD'),'YYYY.MM.DD')
2 from dual;TO_CHAR(TO_DATE('201
--------------------
2011.05.12
from dual;
得到 2011.05.12
已经是正确答案了,还整后面的干啥?
真是多此一举
when '2011-01-02' > '2011-01-01' then
'2011-01-02'
else
'2011-01-01'
end),
'yyyy.mm.dd')
from dual
试下这个
WHEN '2011.05.11' > '2011.05.12' THEN
'2011.05.11'
ELSE
'2011.05.12'
END,
'YYYY.MM.DD',
'nls_date_language=american'),
'YYYY.MM.DD')
FROM dual;
谢谢 ,原来是这样子