Oracle时间处理有时候to_char和to_date两个比较关键的函数,在此总结一下:
一获取系统当前时间select sysdate from dual;
二 to_char的用法select to_char(sysdate,"yyyy.mm.dd") from dual
select to_char(sysdate,"yyyy-mm-dd") from dual
select to_char(sysdate,"yyyy mm dd") from dual
select to_char(sysdate,"yyyy*mm*dd") from dual
select to_char(sysdate,"yyyymmdd") from dual 只要被转换的是一个日期,yyyy,mm,dd中间加不加连接符,加什么连接符都可以。我们可以把空格理解为一个空的连接符。看一个连接符星号的截图:
三 to_date的用法to_date的要求就稍微多了一点。
①带连接符select to_date("2012.07.26","yyyy-mm-dd") from dual
select to_date("2012.07.26","yyyy.mm.dd") from dual
select to_date("2012.07.26","yyyy mm dd") from dualselect to_date("2012-07-26","yyyy-mm-dd") from dual
select to_date("2012-07-26","yyyy.mm.dd") from dual
select to_date("2012-07-26","yyyy mm dd") from dualselect to_date("2012.7.1","yyyy-mm-dd") from dual
select to_date("2012.7.1","yyyy.mm.dd") from dual
select to_date("2012.7.1","yyyy mm dd") from dual所谓带连接符,就是我们to_date的第一个参数的yyyy,mm,dd之间有没有连接符。如果有,那么第二个参数必须有连接符,随便是什么连接符。而且mm,dd不一定要对应位数。07可以对应mm,7同样可以对应mm。我们可以把空格理解为一个空的连接符。
②不带连接符select to_date("20120726","yyyymmdd") from dual
select to_date("20120726","yyyy.mm.dd") from dual
select to_date("20120726","yyyy-mm-dd") from dual不带连接符的必须一一位数对应,第二个字符串带不带连接符均可。07可以匹配mm,但7就不可以匹配mm
③①②中情况查出的结果都是带"-"的,无论有无连接符,连接符是什么。看截图: 四 带上时间的转换select to_char(sysdate,"yyyy.mm.dd hh24 mi ss") from dual截图: select to_date("2012.7.1 21:09:09","yyyy-mm-dd hh24 mi ss") from dual截图:
除了时间的显示有些区别,其余的和上述所说原则一致。
五 项目中的应用我们以前在java代码中对时间进行操作,其实我们完全可以交给sql语句进行操作update student set birth = to_date(#birth#,"yyyy-mm-dd");传来一个日期参数即可,就看你是带连接符的还是不带链接符的了。ORA-00600:[32695], [hash aggregation can"t be done] 解决方法SQL Server 2008 允许远程链接相关资讯 Oracle高级培训
- delete表的数据后恢复 (08/30/2012 08:59:58)
- 使用ASH信息,发现高CPUsession (08/14/2012 07:21:32)
- 如何阅读Oracle Errorstack Output (08/14/2012 07:15:47)
| - Oracle Apps Patching:adpatch( (08/16/2012 15:41:37)
- 话说V$SQL_MONITOR (08/14/2012 07:19:54)
- Oracle Apps DBA工具:ADADMIN使用 (08/14/2012 07:00:09)
|
本文评论 查看全部评论 (0)