Oracle日期比较:2015/6/3 19:18:29 DATE类型 与 20161128095601 VARCHAR2(16)类型
来源:互联网 发布:淘宝新建员工 编辑:程序博客网 时间:2024/04/28 17:47
情景1:求新注册的用户id,表1中第一次登陆日期大于表2中领取奖品日期-30天的则为新用户。
两个表中日期格式如下
表1中第一次登陆日期格式 2015/6/3 19:18:29 DATE类型,
表2中领取奖励日期格式 20161128095601 VARCHAR2(16)类型
方法一:
SELECT a.id
FROM table1 a, table2 b
WHERE a.id = b.id
AND a.date >
(TO_DATE((SUBSTR(b.date, 1, 4) || '/' || SUBSTR(b.date, 5, 2) || '/' ||
SUBSTR(b.date, 7, 2) || ' ' || SUBSTR(b.date, 9, 2) || ':' ||
SUBSTR(b.date, 11, 2) || ':' || SUBSTR(b.date, 11, 2)),
'yyyy/MM/dd hh24:mi:ss') - 30);
注:编写中遇到错误
ORA-01810格式代码出现两次
发现对于24小时制,HH支持的不好,又改成一下格式:
HH24指 24小时制 HH 是12小时制 MI只能写为MI 不能写MM MM 是错的;
ORA-01797: 此运算符后面必须跟 ANY 或 ALL
两个表中日期格式如下
表1中第一次登陆日期格式 2015/6/3 19:18:29 DATE类型,
表2中领取奖励日期格式 20161128095601 VARCHAR2(16)类型
方法一:
SELECT a.id
FROM table1 a, table2 b
WHERE a.id = b.id
AND a.date >
(TO_DATE((SUBSTR(b.date, 1, 4) || '/' || SUBSTR(b.date, 5, 2) || '/' ||
SUBSTR(b.date, 7, 2) || ' ' || SUBSTR(b.date, 9, 2) || ':' ||
SUBSTR(b.date, 11, 2) || ':' || SUBSTR(b.date, 11, 2)),
'yyyy/MM/dd hh24:mi:ss') - 30);
注:编写中遇到错误
ORA-01810格式代码出现两次
发现对于24小时制,HH支持的不好,又改成一下格式:
HH24指 24小时制 HH 是12小时制 MI只能写为MI 不能写MM MM 是错的;
ORA-01797: 此运算符后面必须跟 ANY 或 ALL
写的时候to_date函数没加,我的括号写错位置;
情景2:查询语句报错ORA-01861: 文字与格式字符串不匹配
表1
ID类型VARCHAR2(32) END_DATE类型DATE NAME类型VARCHAR2(64)
1 2016/8/7 黎明
2 2015/10/13 流星
SELECT T.* FROM TABLE1 T WHERE TO_DATE(T.END_DATE, 'yyyy-mm-dd') >= TO_DATE(sysdate, 'yyyy-mm-dd');
--ORA-01861: 文字与格式字符串不匹配
修改查询语句:
SELECT T.* FROM TABLE1 T WHERE TO_DATE((TO_CHAR(T.END_DATE, 'yyyy-mm-dd')), 'yyyy-mm-dd') >= TO_DATE((TO_CHAR(sysdate, 'yyyy-mm-dd')), 'yyyy-mm-dd');
希望对你有帮助,祝你有一个好心情,加油!
若有错误、不全、可优化的点,欢迎纠正与补充;转载请注明出处!
1 0
- Oracle日期比较:2015/6/3 19:18:29 DATE类型 与 20161128095601 VARCHAR2(16)类型
- Date日期类型比较
- oracle-日期类型比较
- 日期类型的比较与转换(date Calendar timestamp):
- oracle三大类型(varchar2,number,date)转换
- Oracle 日期类型 Date 和 Timestamp 详解
- oracle中date类型的比较
- oracle varchar2 字段类型长度
- Oracle varchar2 转换 clob 类型
- Oracle varchar2 转换 clob 类型
- oracle修改varchar2类型为clob类型
- ORACLE把CLOB类型转成VARCHAR2类型
- Date日期类型操作
- Oracle CHAR,VARCHAR,VARCHAR2类型的区别与使用
- Oracle CHAR,VARCHAR,VARCHAR2类型的区别与使用
- Oracle CHAR,VARCHAR,VARCHAR2类型的区别与使用
- Oracle CHAR,VARCHAR,VARCHAR2类型的区别与使用
- Oracle CHAR,VARCHAR,VARCHAR2类型的区别与使用
- adb 命令
- UBUNTU 16.04 安装日记
- Laravel 手动分页实现详解
- php 反射学习
- Android,在争议中逃离 Linux 内核的 GPL 约束
- Oracle日期比较:2015/6/3 19:18:29 DATE类型 与 20161128095601 VARCHAR2(16)类型
- Android Studio中导入Eclipse项目
- 项目架构开发:服务层
- 【Linux基础】Linux C编程环境
- 代码复制有风险
- 【第二十一课】流----System类中SetErr和SetOut方法的使用
- 2017年春招途牛前端初面面经
- Linux第二课总结
- Web开发中常见的认证机制