闲话不说,直接进入主题。
一,首先我的实验都是在虚表中进行的。当然,也有人叫做伪表,就是dual。
dual简单说下。dual说他是虚表,其实其中没有存什么数据;再则,我们查询的格式都是select * from table,所以查询一些特殊的东西也需要表来保证格式的完整,所以有:
//查询系统时间
select sysdate from dual;
//自动生成序列,该序列全球唯一,所以,字符长度长,内存占用大
select sys_guid() from dual;
二,时间函数
1.new_day(datetime,String str) 这个字面是明天,但其实表示下一个星期几的,所以,看例子:
select new_day(sysdate,'monday') from dual;
select new_day(sysdate,'2') from dual;
就是说要从当前时间查询到写一个星期几的时间,第一句,按照英文,实际是星期几就是星期几,第二个数字,采用的是西方的方式,1代表周日,2代表周一,一次类推,7代表周六,别的数字错误。有的这样也是正确的:
select new_day(sysdate,'星期一') from dual;
但,很遗憾,我的报错了。
特别注意的是:这个表示只是下一个星期几的日期,就是说,如果现在是星期四,那么,你查找周日到周四都是下一个礼拜的,以为这个时间已经度过了,但是周五到到周六没有过,所以显示本周的。
例子不上插图,有兴趣的自己运行就可以,不得不吐槽,这个博客截图插图真麻烦。