DB2中字符、数字和日期类型之间的转换
来源:互联网 发布:pp助手mac版工具箱 编辑:程序博客网 时间:2024/06/10 09:08
一般我们在使用DB2或Oracle的过程中,经常会在数字<->字符<->日期三种类 型之间做转换,那么在DB2和Oracle中,他们分别是如何实现的呢?在Oracle这几个类型之间的转换是十分方便的,通过 to_char|to_date|to_number函数即可完成类型转换。本小节主要介绍DB2中的一些知识,从Oracle转过来的DBA或开发人 员,可以对比着学习。
数字型到字符型的转换
DB2中的col_a字段
字段类型到字符类型的转换smallintchar(col_a)integerbigintdoublechar(cast(col_a as decimal(8,2))))decimal(8,2)Digits(col_a)测试一下:
SQL>create table test_datatypeSQL>(SQL>col_a smallint,SQL>col_b integer,SQL>col_c bigint,SQL>col_d decimal(8,2),SQL>col_e doubleSQL>);DB20000I SQL命令成功完成。SQL>insert into test_datatype values(1,20,3000,4000.44,55555);DB20000I SQL命令成功完成。SQL>describe select * from test_datatype
列信息 列数:5 SQL 类型 类型长度 列名 名称长度 -------------------- ----------- ------------------------------ ----------- 501 SMALLINT 2 COL_A 5 497 INTEGER 4 COL_B 5 493 BIGINT 8 COL_C 5 485 DECIMAL 8, 2 COL_D 5 481 DOUBLE 8 COL_E 5SQL>select * from test_datatype;COL_A COL_B COL_C COL_D COL_E------ ----------- -------------------- ---------- ------------------------ 1 20 3000 4000.44 +5.55550000000000E+004 1 条记录已选择。SQL>select char(col_a),char(col_b),char(col_c),digits(col_d),char(cast(col_e as decimal(8,2))) from test_datatype;1 2 3 4 5------ ----------- -------------------- -------- ----------1 20 3000 00400044 055555.00 1 条记录已选择。SQL>select char(col_a)||','||char(col_b)||','||char(col_c)||','||digits(col_d)||','||char(cast(col_e as decimal(8,2))) from test_datatype;1-----------------------------------------------------------1 ,20 ,3000 ,00400044,055555.00 1 条记录已选择。SQL>
字符型到数字型的转换
DB2中的col_a字段
字段类型数字类型转换charsmallintInteger(trim(char(col_a)))integerbigintcast(char(col_a) as bigint)decimalcast(col_a as decimal(8,2))doublecast(cast(char(cast(a.col_a as decimal(8,2))) as decimal(8,2)) as double)测试一下
SQL>create table test_datatypeSQL>(SQL>col_a char(2),SQL>col_b char(4),SQL>col_c char(10),SQL>col_d char(10),SQL>col_e char(10)SQL>);DB20000I SQL命令成功完成。SQL>insert into test_datatype values('1','200','30000','4000.04','5000000');DB20000I SQL命令成功完成。SQL>describe select * from test_datatype;列信息 列数:5 SQL 类型 类型长度 列名 名称长度 -------------------- ----------- ------------------------------ ----------- 453 CHARACTER 2 COL_A 5 453 CHARACTER 4 COL_B 5 453 CHARACTER 10 COL_C 5 453 CHARACTER 10 COL_D 5 453 CHARACTER 10 COL_E 5SQL>select Integer(trim(char(col_a))),SQL>Integer(trim(char(col_b))),SQL>cast(char(col_c) as bigint),SQL>cast(col_d as decimal(8,2)),SQL>cast(cast(char(cast(col_e as decimal(12,2))) as decimal(12,2)) as double)SQL>from test_datatype;1 2 3 4 5----------- ----------- -------------------- ---------- ------------------------ 1 200 30000 4000.04 +5.00000000000000E+006 1 条记录已选择。SQL>
字符型到日期时间型的互换
DB2中的col_a字段
字段类型日期时间型char
date(trim(char(col_a)))
timestamp(trim(char(col_a)))或to_date(--string-expression,format-string(DB2 9)
注:to_date实际是TIMESTAMP_FORMAT函数的一个同义词字段类型字符类datechar(col_a)timetimestampchar(col_a) 或 to_char(--timestamp-expression--,format-string--) (DB2 9)注:to_char实际是VARCHAR_FORMAT函数的一个同义词测试一下看看
SQL>select date(trim(char('2009-09-01 '))),SQL>time(trim(char('12:23:34 '))),SQL>timestamp(trim(char('2009-02-26-14.28.40.234000'))) from sysibm.dual;1 2 3---------- -------- --------------------------2009-09-01 12:23:34 2009-02-26-14.28.40.234000 1 条记录已选择。SQL>select char(current date),char(current time),char(current timestamp) from sysibm.dual;1 2 3---------- -------- --------------------------2009-02-26 14:28:40 2009-02-26-14.28.40.234000 1 条记录已选择。SQL>select to_char(current timestamp,'yyyy-mm-dd hh24:mi:ss') from sysibm.dual;--DB2 9版本中新增1--------------------------2009-02-26 14:45:531 条记录已选择。SQL>select to_date('2009-01-01 12:23:45','yyyy-mm-dd hh24:mi:ss') from sysibm.dual;--DB2 9版本中新增1--------------------------2009-01-01-12.23.45.0000001 条记录已选择。SQL>
http://www.cnblogs.com/QQParadise/articles/2058047.html
0 0
- DB2中字符、数字和日期类型之间的转换
- DB2中字符、数字和日期类型之间的转换
- DB2中字符、数字和日期类型之间的转换
- DB2中字符、数字和日期类型之间的转换
- VC++中数字和字符之间的相互转换
- 数字和日期之间的相互转换
- 【oracle】 日期和字符之间的转换
- 日期类型和字符转类型之间的最简单转换方法
- 日期类型和字符转类型之间的最简单转换方法
- C++中数字与字符串之间的转换(包括C++11新标准和宽窄字符转换)
- C++中数字与字符串之间的转换(包括C++11新标准和宽窄字符转换)
- 字符数字之间的转换
- C++中单个数字的int类型和char类型之间的相互转换
- db2 数字转换字符 oracle和db2的sql语句区别
- 字符类型之间的转换
- 十六进制的数字字符和十六进制数之间的转换
- 编程语言中字符与数字之间的转换
- c语言中数字与字符之间的相互转换
- 闭包的应用场景
- 常用排序算法
- POJ 1017 Packets(水~)
- Sudoku Solver填数
- 冒泡排序 回顾
- DB2中字符、数字和日期类型之间的转换
- javaScript里的setTimeout()函数
- Maven仓库—Nexus环境搭建及简单介绍
- Spring AOP 动态代理
- Java语言 快速排序
- 51nod1354选数字
- Activity的四大启动模式
- LeetCode题解:Missing Number
- VPI 8.6 安装时遇到的问题及解决