日期的处理
1,数据库里存的是date 使用 insert 语句
insert into mytest_t values(1,'张三',to_date('2011-09-09','yyyy-MM-dd')) insert into mytest_t values(1,'张三',to_date('20110909','yyyyMMdd'))
2,数据库里面存的时varchar2 直接插入
insert into mytest_t values(1,'zhangdan','2011-09-09')
3,查询 ,数据库存的是varchar2
日期输出的格式是由 to_char 决定的
select to_char(to_date(birthday01,'yyyy-mm-dd'),'yyyy-MM-dd') from MYTEST_T 输出是:yyyy-MM-dd select to_char(to_date(birthday01,'yyyy-mm-dd'),'yyyyMMdd') from MYTEST_T 输出是:yyyyMMdd
4,查询 ,数据库存的是date
select to_char(birthday,'yyyy-MM-dd') from MYTEST_T 格式 是由to_char 决定的 select to_char(birthday,'yyyyMMdd') from MYTEST_T select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串 select to_char(sysdate,'yyyy') as myyear from mytest; //获取时间的年 select to_char(sysdate,'mm') as myMonth from mytest; //获取时间的月 select to_char(sysdate,'dd') as myDay from mytest; //获取时间的日 select to_char(sysdate,'hh24') as myHour from mytest; //获取时间的时 select to_char(sysdate,'mi') as myMinute from mytest; //获取时间的分 select to_char(sysdate,'ss') as mySecond from mytest; //获取时间的秒
补充:
在学习mybatis的学习中,用到模糊查询的时候,发现直接拼接成‘%'#{description}'%'会报错,然后整理了三种模糊查询的SQL语句写法:
1.在传参的时候,就把参数拼接为"%"+#{description}+"%"
然后传到XML文件的SQL语句中,这样就避免了在SQL语句中拼接出错(在ORACLE数据库中或许会报“ORA-01722: 无效字符”错误,针对ORACLE可以修改成"%"||#{description}||"%")
2.使用SQL的concat函数 在SQL语句进行拼接,这样拼接的SQL语句也是符合要求的,如:
SELECT * FROM MESSAGE WHERE DESCRIPTION like CONCAT(CONCAT('%',#{description}),'%');
3.使用${description}替换,#{description}就可以直接用'%${description}%',如:
SELECT * FROM MESSAGE WHERE DESCRIPTION like '%${description}%';
上面三种方式中,以第二种为最,几乎无论什么情形都可以使用,而第一种和第三种都需要有一些前提条件才可以使用,不过在正常的工作中,几乎都可以使用到这三种方法。今天整理出来,也为大家以后再次遇到这种情况提供一点小小的帮助。
注:第三种方法不推荐大家使用,有可能会出现sql注入风险
总结
以上所述是小编给大家介绍的oracle sql语言模糊查询--通配符like的使用教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!