oracle学习 七 拼接变量+日期函数(持续更)
2015-01-07 12:54
615 查看
select count(KEYCODE) from STHSGDOC.ZJSJJL where ysrq=to_date(to_char(sysdate,'yyyy')||'/1','yyyy/MM/');
查询当年一月份的数据,其中用到了to_char以及to_date,
to_char的用法是吧字段转换为char类型,举个例子:
to_char(sysdate, 'yyyy/mm/dd');
相当于按照这个格式转化了系统的时间,结果就是'2003/07/09' 。
那么to_date就是转化为日期格式了,有几个句子:
select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年 select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月 select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日 select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时 select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分 select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒
其中dual是oracle自定义的虚拟表,但是里面只能显示一个数据。
在SQL中查询某个日期直接的单引号里面放上日期即可,但是oracle的原生日期是天/月/年的表现形式,一开始你还要设置一下会话,例如:
alter session set nls_date_format = ‘yyyy-dd--mm’
就修改为了yyyy-dd--mm格式。
接下来就是拼接字段的方法,除了使用+号还可以使用“||”这样做
select to_date(to_char(sysdate,'yyyy')||'/1/1','yyyy/MM/dd') as ttime from dual
可以得到2015/1/1如果使用加号的话,会报
ORA-01722无效的数字这个错误。
ORA-01830:日期格式图片在转换整个输入字符串之前结束,解决:错误产生原因:date类型不能包含秒以后的精度。
相关文章推荐
- 学习Oracle遇到的实际问题(持续更新)
- oracle学习 二(持续更新中)
- 超详细 在linux环境部署oracle 的学习心得(系统部署持续更新~~)
- oracle 行转列,列转行快速学习笔记(持续更新)
- ORACLE学习中出现的问题(持续更新中)
- Oracle学习05【持续更新】
- Oracle学习04【持续更新】
- oracle学习 三(持续更新中)
- oracle学习 九 游标的使用(持续更)
- oracle学习 八 分页(使用rownumber)(持续更)
- Oracle 9i & 10g编程艺术-深入数据库体系结构-学习笔记(持续更新中)
- Oracle学习01【持续更新】
- oracle学习 一 (持续更新中)
- oracle学习 六 删除表空间,数据文件的语句以及导入导出dmp文件的方法(持续更新中)
- oracle数据库学习记录(持续更新中...)
- oracle数据库学习记录(持续更新中...)
- Oracle学习02【持续更新】
- oracle学习 十 数据库的语句优化(持续更)
- oracle学习 四(持续更新中)无法为表空间 MAXDATA 中的段创建 INITIAL 区
- 学习oracle的一些好网站【持续更新】7-23