以前学习的是oracle数据库,最近的项目用的是db2,所以准备学习一下db2的知识,
准备从oracle和db2的不同处开始学习,毕竟相同的地方重复学也没意思,在网上找了一下oracle和db2语法区别的博文看了看
http://blog.sina.com.cn/s/blog_7017f4a801015e65.html
select t.* ,rownumber()over() from tuser t--分页语句
select id from tuser fetch first 5 rows only --查出前5行
Select current timestamp from sysibm.sysdummy1;--注意sysdummy1最后一个字符为数字1
Select t.*,value(age,'0') 年龄,Coalesce(age,'0') from tuser t;--这两个函数相当于oracle中的nvl函数
select varchar(current timestamp) from sysibm.sysdummy1--将时间转化为字符串,需要注意的是直接用varchar转为字符串的格式
<img src="https://img-blog.youkuaiyun.com/20160523000244639?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
select year(current timestamp)||'-'||month(current timestamp)||'-'||day(current timestamp)||' '||hour(current timestamp)||':'||minute(current timestamp)||':'||second(current timestamp) from sysIBM.sysdummy1
select t.*, extract(year from current date) from tuser t
select current date from sysibm.sysdummy1--日期
select current timestamp from sysibm.sysdummy1--准确时间
select extract(month from current timestamp) from sysibm.sysdummy1--截取月份数
select add_months(current date,3) from sysibm.sysdummy1-- 加三个月
select add_months(trunc(last_day(sysdate),'yyyy'),12) from sysibm.sysdummy1 --这个月最后一天
select extract( day from sysdate) from sysibm.sysdummy1--相当于timestamp
select trunc(date(days(trunc(current date))) ,'d')from sysibm.sysdummy1 --
select date(trunc(current date,'q')) from sysibm.sysdummy1--本季度第一天
select trunc( current timestamp) from sysibm.sysdummy1
select date(days(trunc( current timestamp))+1) from sysibm.sysdummy1--在db2中时间类型不能直接加数字类型 必须用days转化为数字类型的天数 然后再将数字转化为时间
select date(days(add_months(trunc(current timestamp,'yyyy'),12))-1) from sysibm.sysdummy1--本年度最后一天
select decode(age,null,0) from tuser --和oracle一样
WITH al AS (select max(id) as s from tuser ) select id,s from tuser,al where tuser.id=al.s --和oracle中用法相同
create table amm like tuser--复制表结构
向复制的表结构中赋原来的值 insert into am select * from tuser
不知道为什么create table amm as select id,name,sex,money,age from tuser definition only 我并没有运行成功,所以<span style="font-family: Arial, Helvetica, sans-serif;">并没有找到向oracle中那样直接</span>
<span style="font-family: Arial, Helvetica, sans-serif;">一起复制表结构和数据的</span>
不知道为什么很多地方在db2中用时间的时候 大都用current date 和current timestamp 我发现在db2中sysdate这个oracle中用作时间的也能用,但是很少看到别人用