请教Oracle存储过程日期的比较,传入的日期包含时分秒,可是比较的时候Oracle自动把时分秒去掉了,只留下了年月日,请问为什么?

A1027 2010-12-17 11:56:45
请教Oracle存储过程日期的比较,传入的日期包含时分秒,可是比较的时候Oracle自动把时分秒去掉了,只留下了年月日,请问为什么?
...全文
789 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
minitoy 2010-12-17
  • 打赏
  • 举报
回复
不会吧.你dbms_output.put_line(to_char(变量,'yyyy-mm-dd hh24:mi:ss')看看到底值是什么
gelyon 2010-12-17
  • 打赏
  • 举报
回复
比较的时候只有日月年? 你是怎么比较的啊?
Oraclefans_ 2010-12-17
  • 打赏
  • 举报
回复
你加个to_date(youtime,'yyyy-mm-dd hh24:mi:ss')就可以了
Oraclefans_ 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 a1027 的回复:]

引用 6 楼 oraclefans_ 的回复:
sqlstr:=sqlstr||' AND at1.Create_Time<='||to_char(to_date(Create_Time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');


还是报异常:ORA-01861: 文字与格式字符串不匹配的异常
[/Quote]
你现在报的错,是因为你的to_date后面那里的要作为字符串处理,这样太麻烦了,to_char后,还必须to_date,直接用timestamp代替。。
Oraclefans_ 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 a1027 的回复:]

引用 6 楼 oraclefans_ 的回复:
sqlstr:=sqlstr||' AND at1.Create_Time<='||to_char(to_date(Create_Time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');


还是报异常:ORA-01861: 文字与格式字符串不匹配的异常
[/Quote]
如果你要涉及到时分秒建议你不要使用date类型,改成timestamp类型最好。。。
A1027 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 oraclefans_ 的回复:]
sqlstr:=sqlstr||' AND at1.Create_Time<='||to_char(to_date(Create_Time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');
[/Quote]

还是报异常:ORA-01861: 文字与格式字符串不匹配的异常
Oraclefans_ 2010-12-17
  • 打赏
  • 举报
回复
sqlstr:=sqlstr||' AND at1.Create_Time<='||to_char(to_date(Create_Time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');
A1027 2010-12-17
  • 打赏
  • 举报
回复
sqlstr:=sqlstr||' AND at1.Create_Time<='||to_date(Create_Time,'yyyy-mm-dd hh24:mi:ss');

Create_Time类型为date,传的值Convert.ToDateTime("2010-12-11 10:40:57"),会报
ORA-01861: 文字与格式字符串不匹配的异常
心中的彩虹 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 a1027 的回复:]
请教Oracle存储过程日期的比较,传入的日期包含时分秒,可是比较的时候Oracle自动把时分秒去掉了,只留下了年月日,请问为什么?
[/Quote]
to_date(dt,'yyyy-mm-dd hh24:mi:ss')

17,078

社区成员

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

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