db2数据库中的数据类型
2016-05-22 17:59
453 查看
以前学习的是oracle数据库,最近的项目用的是db2,所以准备学习一下db2的知识,
准备从oracle和db2的不同处开始学习,毕竟相同的地方重复学也没意思,在网上找了一下oracle和db2语法区别的博文看了看
http://blog.sina.com.cn/s/blog_7017f4a801015e65.html
不知道为什么很多地方在db2中用时间的时候 大都用current date 和current timestamp 我发现在db2中sysdate这个oracle中用作时间的也能用,但是很少看到别人用
准备从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.csdn.net/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中用作时间的也能用,但是很少看到别人用
相关文章推荐
- 数据库的应用
- MySQL - Found option without preceding group in config file
- MySQL - Found option without preceding group in config file
- 学生科目成绩创建表与数据库
- MySQL - ERROR 1839
- 数据库基础知识总结
- MongoDb的接口使用(Java版本)
- 为什么你的MySQL跑得很慢?
- MySQL - ERROR 1406
- MySQL基本操作SQL语句
- MySQL - ERROR 1235 (42000)
- linux下安装mongodb
- MySQL - ERROR 1062 (23000)
- MySQL - ERROR 1062 (23000)
- MySQL - undefined function mysql_connect()
- MySQL - undefined function mysql_connect()
- pl/sql自定义异常
- innodb表压缩
- Hibernate命名查询、本地SQL、自定义SQL、存储过程
- Windows下的绿色版MySQL配置与启动