Oracle SQL日期比较

原创 2016年05月31日 10:23:01

需要to_date函数把常量转换成日期

select * from TBL_STUDENT where LAST_UPDATE_TIME <= to_date('2016-05-30 00:00:00','yyyy-mm-dd hh24:mi:ss')

如果输入库里的时间不是24小时的,是带am,pm的

select * from TBL_STUDENT where LAST_UPDATE_TIME <= to_date('2016-05-30 00:00:00 am','yyyy-mm-dd hh24:mi:ss am')


可能会出现以下错误
ORA-01855:am/a.m or pm/p.m. required

这是因为NLS_DATE_LANGUAGE的设置问题。执行以下语句查看

select * from v$nls_parameters;

PARAMETER VALUE
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY ¥
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET UTF8
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY ¥
NLS_NCHAR_CHARACTERSET UTF8
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE

发现NLS_DATE_LANGUAGE是SIMPLIFIED CHINESE,并不是AMERICAN。所以修改如下

select * from TBL_STUDENT where LAST_UPDATE_TIME <= to_date('2016-05-30 00:00:00 上午','yyyy-mm-dd hh24:mi:ss am')
















版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle中怎么比较两个日期的大小

再写代码时老是会遇到比较两个日期的大小问题,于是自己写了个方法,以备以后参考: //比较日期前后 function compareDate(DateOne,DateTwo) ...
  • Q1059081877Q
  • Q1059081877Q
  • 2015年07月15日 20:59
  • 4551

Oracle SQL日期比较和常用日期函数

一、oracle sql日期比较 在今天之前:select * from up_date where update  to_date('2007-09-07 00:00:00','yyyy-mm-...
  • c657826604
  • c657826604
  • 2016年04月22日 09:21
  • 6342

oracle sql日期比较

oracle sql日期比较 共三部分: 第一部分:oracle sql日期比较: http://www.blogjava.net/forker/archive/2007/09/...
  • huanggang982
  • huanggang982
  • 2015年09月09日 21:00
  • 364

oracle中date类型的比较

oracle日期 条件 查询
  • hdblocal
  • hdblocal
  • 2016年06月20日 17:11
  • 3034

oracle sql日期比较

oracle sql日期比较
  • csdnhxs
  • csdnhxs
  • 2017年06月06日 15:00
  • 474

Oracle的字符串和日期的比较

当Oracle中有日期字符串和日期经行比较的时候, 最好把字符串转换为日期, 如:TO_DATE(T1.BUILD_DATE,'YYYY-MM-DD')...
  • YiQiJinBu
  • YiQiJinBu
  • 2012年06月29日 17:28
  • 5123

Oracle日期比较:2015/6/3 19:18:29 DATE类型 与 20161128095601 VARCHAR2(16)类型

情景:求新注册的用户id,表1中第一次登陆日期大于表2中领取奖品日期-30天的则为新用户。 两个表中日期格式如下 表1中第一次登陆日期格式 2015/6/3 19:18:29 DATE类型, ...
  • cheng_feng_xiao_zhan
  • cheng_feng_xiao_zhan
  • 2017年03月14日 18:13
  • 728

Oracle数据库日期过滤方法性能比较

在开发SQL时,过滤日期段是经常遇到的情况,如何高效的过滤出日期段?本文通过实验进行验证:...
  • lhl6688
  • lhl6688
  • 2015年02月02日 11:21
  • 2211

Oracle数据库-date数据类型(时间)比较大小

OCCUR_TIME为table表data数据类型的字段,以下为查询小于当前系统时间300秒的时刻后的记录select * from table where OCCUR_TIME > (select ...
  • jeff06143132
  • jeff06143132
  • 2010年08月09日 00:33
  • 8383

oracle时间大小比较

createtime >to_date( '2006-04-08 00:00:01','yyyy-mm-dd hh24:mi:ss')  and createtime 或者 createtime...
  • qiaqia609
  • qiaqia609
  • 2013年08月23日 13:43
  • 13546
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle SQL日期比较
举报原因:
原因补充:

(最多只允许输入30个字)