oracle时间问题

whip1441 2007-08-23 10:46:49
declare DateValue date;
begin
select sysdate into DateValue from dual;
dbms_output.put_line(to_char(DateValue - 1));
end;
为什么我这样写只显示日期 22-8月 -07,
一定要写成
dbms_output.put_line(to_char(DateValue - 1, 'YYYY-MM-DD HH24:MI:SS'));吗?

to_char('2007-8-23 10:23:14', 'YYYY-MM-DD HH24:MI:SS')为什么报错(有太多"to_char" 说明与此次调用相匹配)?

还有我想只做时间的比较,不要日期,应该怎么写?
...全文
135 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mantisXF 2007-08-23
  • 打赏
  • 举报
回复
to_char里面的参数必须为非字符串类型的值:


SQL> select to_char(to_date('2007-8-23 10:23:14','YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') from dual
2 ;

TO_CHAR(TO_DATE('2007-8-2310:2
------------------------------
2007-08-23 10:23:14

SQL> select to_char(to_date('2007-8-23 10:23:14','YYYY-MM-DD HH24:MI:SS'), 'HH24:MI:SS') from dual;

TO_CHAR(TO_DATE('2007-8-2310:2
------------------------------
10:23:14

SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;

TO_CHAR(SYSDATE,'YYYY-MM-DDHH2
------------------------------
2007-08-22 22:58:30

如果比较时间:

where to_char(to_date('2007-8-23 10:23:14','YYYY-MM-DD HH24:MI:SS'), 'HH24:MI:SS') > to_char(sysdate, 'HH24:MI:SS')


如果比较想日期+时间:
where to_date('2007-8-23 10:23:14','YYYY-MM-DD HH24:MI:SS') > sysdate

注意to_date里面的值为非date类型就可以了 ^_^
whip1441 2007-08-23
  • 打赏
  • 举报
回复
多谢

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧