数据库中的字段 2017-07-11 13:37:51  类型是char 或者varchar

要进件与 ‘20170625‘ 比较,格式不一致,需要将他转换成:yyyyMMdd 字符串

1、先to_dateto_date(create_date,‘yyyy-mm-dd,hh24:mi:ss‘)  格式一定要与create_date一致

2、转字符串 to_char(sysdate ,‘yyyymmdd‘)

例:

下面将create_date转成自己想要的格式

select create_date createDate,

to_char(to_date(create_date,‘yyyy-mm-dd,hh24:mi:ss‘),‘yyyymmdd‘) date1,

to_char(to_date(create_date,‘yyyy-mm-dd,hh24:mi:ss‘),‘yyyy/mm/dd‘) date2,

to_char(to_date(create_date,‘yyyy-mm-dd,hh24:mi:ss‘),‘yyyymmddhh24miss‘) date3

from pfb_payment_order_info;

转换的格式:

表示year的:y  表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年

表示month的:mm 用2位数字表示月;mon 用简写形式 比如11月或者nov ;month 用全称 比如11月或者november

表示day的:dd 表示当月第几天;ddd表示当年第几天;dy 当周第几天 简写  比如星期五或者fri;day当周第几天 全写

比如星期五或者friday。

表示hour的:hh 2位数表示小时 12进制; hh24 2位数表示小时 24小时

表示minute的:mi 2位数表示分钟

表示second的:ss 2位数表示秒 60进制

表示季度的:q 一位数 表示季度 (1-4)

另外还有ww 用来表示当年第几周 w用来表示当月第几周。

24小时制下的时间范围:00:00:00-23:59:59

12小时制下的时间范围:1:00:00-12:59:59

比如:

select to_char(sysdate,‘yy-mm-dd hh24:mi:ss‘) from dual   //显示:08-11-07 13:22:42

select to_date(‘2005-12-25,13:25:59‘,‘yyyy-mm-dd,hh24:mi:ss‘) from dual //显示:2005-12-25 13:25:59

而如果把上式写作:select to_date(‘2005-12-25,13:25:59‘,‘yyyy-mm-dd,hh:mi:ss‘) from dual,则会报错,因为小时hh是12进制,13为非法输入,不能匹配。

补充:

当前时间减去7分钟的时间

select sysdate,sysdate - interval ‘7‘ MINUTE from dual

当前时间减去7小时的时间

select sysdate - interval ‘7‘ hour from dual

当前时间减去7天的时间

select sysdate - interval ’7’ day from dual

当前时间减去7月的时间

select sysdate,sysdate - interval ‘7‘ month from dual

当前时间减去7年的时间

select sysdate,sysdate - interval ‘7‘ year from dual

时间间隔乘以一个数字

select sysdate,sysdate - 8*interval ‘7‘ hour from dual

首先纠正几个问题:

(1)select * from tb where createtime > ‘20111109‘

如果想要这个条件满足的话,tb表里的createtime不能写成‘2011/11/10‘这种格式的,只能写成‘20111110‘,因为‘2011/11/10‘不大于‘20111109‘,只有‘20111110‘才大于‘20111109‘。

(2)比较的时候,是不会自动转换成date类型的,是挨个字符比较它的ACSII码。

所以说‘2011/11/10‘不大于‘20111109‘,因为前四个字符都是2011,肯定是相等的;比到第5个字符的时候,用‘/‘和‘1‘比较,而select 1 from dual where ‘/‘ > ‘1‘是不成立的,说明‘/‘ 小于 ‘1‘, 所以‘2011/11/10‘就小于‘20111109‘

Oracle字符和时间比较

标签:inf   ora   title   target   lan   输入   .net   匹配   order

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:http://www.cnblogs.com/pcpig/p/7156309.html

oracle和当前时间作比较,Oracle字符和时间比较相关推荐

  1. oracle创建表时创建序列号,oracle表中怎么建序列

    在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方. 1.Create Sequence 你首先要有CREATE SEQUENCE或者CREAT ...

  2. oracle 导库时日志满了,oracle rac 11g 日志占满系统盘导致数据库down掉

    oracle日志占满系统盘满了导致数据库挂掉 并且archivelog日志也满了倒是数据库无法open,无法登陆,幸好还可以到mount状态.解决办法: 1.根据报错查看 表象: crs 服务down ...

  3. Oracle数据连接时出现ORA-01034: ORACLE not available ORA-27101错误

    原因:出现ORA-01034和ORA-27101的原因是多方面的,主要是oracle当前的服务不可用,oracle没有启动或没有正常启动,要解决问题通过以下步骤 1.运行->CMD,进入命令行 ...

  4. oracle 不带时分秒,关于Oracle数据库不带日期中时分秒的查询

    关于Oralce数据库 的日期时间查询: 下面我们先来看一组日期数据 表:myDate 列:time; 1998-8-7 23:45:33.3 1998-8-7 11:22:21.5 1998-8-7 ...

  5. oracle插入数据时换行,在oracle里如何去掉数据后的回车换行符

    1.创建测试表, create table test_huiche(id varchar2(20), value varchar2(20)); 2.插入测试数据,部分值含回车换行符: insert i ...

  6. insert执行时oracle如何处理,ORACLE中Insert时字符处理

    在默认情况下,ORACLE允许用户在表字段里使用&字符和其他一些特殊字符. SQL> select * from v$version; BANNER ------------------ ...

  7. Oracle建表时提示标识符无效

    Oracle建表时提示标识符无效 今天用oracle建表时一直提示最后一行标识符无效,经过百度得知level是oracle的关键字,所以字段不能命名为level,后改为roadlevel, CREAT ...

  8. oracle找不到mts,oracle 11g启动时找不到OracleMTSRecoveryService的解决方法

    很多人在安装orcl数据库时,出现很多报错,我也不例外,因上次数据库出现问题,无法修复,只能从新安装,无奈的是,安装时报启动服务出现错误,找不到OracleMTSRecoveryService错MMP ...

  9. Oracle执行exists优化,PHP_解决Oracle性能优化中的问题, 在Oracle性能优化时,用exists - phpStudy...

    在Oracle性能优化时,用exists替代in,用表链接替代exists,关于前者,一般效果比较明显,exists效率明显比in高,但是如果要想表连接的效率比exists高,必须在from子句中,将 ...

最新文章

  1. 用 Python 写 3D 游戏,太赞了
  2. 基于点云的3D深度学习主干网络进展综述
  3. 将MathType公式转换为Word自带公式
  4. 【linux草鞋应用编程系列】_3_ 进程间通信
  5. Spring Security 入门(3-11)Spring Security 的使用-自定义登录验证和回调地址
  6. linux发挥显卡性能,Linux Kernel 2.6.30下Intel显卡性能有大幅提升!
  7. cmake使用总结(转)---工程主目录CMakeList文件编写
  8. python之路day03--数据类型分析,转换,索引切片,str常用操作方法
  9. 什么是条件组合覆盖_什么是综合评价?高中生报名有哪些好处?
  10. oracle中长字符串长度吗,Oracle 字符串长度函数
  11. RedHat 7配置bonding双网卡绑定
  12. 12306订票候补是个坑_12306网上订票候补是什么意思
  13. linux 命令修改IP(最有效方法)
  14. 如何使用禅道集成钉钉
  15. QIIME 2基因云,登10分JHM
  16. 复旦-华盛顿大学EMBA 二十年20人丨徐欣:从外企转战民企的变身
  17. Excel2003工作簿密码和工作表保护的加密和解密
  18. 【cx_Oracle】记录一次 python cx_Oracle出现 ORA-00911: 无效字符
  19. 回归算法(最小二乘法拟合)
  20. 即使Windows DVD Maker不存在,如何在Windows 8上创建DVD-DVDStyler

热门文章

  1. 优化概率神经网络_Bayesian Neural Networks:贝叶斯神经网络
  2. 190320 逆向-单字节穷举
  3. 轻NAS搭建 - 使用微力同步搭建私人云盘,无需公网IP也能远程访问
  4. wps文档复制粘贴序号_wps 中word文档插入表格,如何插入的表格中实现 序号的自动 填写...
  5. linux 自带强大调试工具sysRQ(高级片)
  6. [转贴] 麻省理工要求本科生三年看完的电影
  7. idea插件安装路径
  8. python写一个接口_如何用python写接口
  9. ping 命令出错 network is unreachable
  10. SpringMVC 表单标签中 htmlEscape 属性的作用