首页 > 代码库 > oracle学习 七 拼接变量(持续更)

oracle学习 七 拼接变量(持续更)

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无效的数字这个错误

oracle学习 七 拼接变量(持续更)