`

DB2中字符、数字和日期类型之间的转换

 
阅读更多

一般我们在使用DB2或Oracle的过程中,经常会在数字<->字符<->日期三种类 型之间做转换,那么在DB2和Oracle中,他们分别是如何实现的呢?在Oracle这几个类型之间的转换是十分方便的,通过 to_char|to_date|to_number函数即可完成类型转换。本小节主要介绍DB2中的一些知识,从Oracle转过来的DBA或开发人 员,可以对比着学习

数字型到字符型的转换

DB2中的col_a字段

字段类型 到字符类型的转换
smallint char(col_a)
integer
bigint
double char(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 5

SQL>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字段

字段类型 数字类型 转换
char smallint Integer(trim(char(col_a)))
integer
bigint cast(char(col_a) as bigint)
decimal cast(col_a as decimal(8,2))
double cast(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 5

SQL>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函数的一个同义词
字段类型 字符类
date char(col_a)
time
timestamp char(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:53
1 条记录已选择。

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.000000
1 条记录已选择。
分享到:
评论

相关推荐

    Oracle与DB2数据类型的分类对应说明

    Oracle 与 DB2 数据类型的分类对应说明 ... Oracle 和 DB2 数据类型之间的对应关系较为复杂,需要根据具体情况进行选择和转换。通过本文的说明,可以更好地理解和应用 Oracle 和 DB2 数据库管理系统。

    全面了解DB2数据库中的各数据类型

    在使用DB2时,开发者还需要注意数据类型的转换和兼容性问题,以确保数据的正确存储和检索。此外,了解数据库的优化策略,如索引的创建和使用,也能进一步提升DB2的性能。 总结来说,DB2提供了丰富的数据类型,满足...

    ORACLE与DB2的区别和转换

    此外,DB2还可以通过`TIMESTAMP`、`DATE`和`TIME`等函数直接将字符串转换为相应的日期时间格式。 #### 三、高级特性 ##### 5. 快速清空大表 **Oracle**: `truncate table TableName;` **DB2**: `alter table ...

    DB2各类函数总汇

    DB2 函数可以分为九大类:聚合函数、类型转换函数、数学函数、字符串函数、日期时间函数、XML 函数、分区函数、安全函数和其他函数。 一、聚合函数 聚合函数是指对表中的数据进行聚合操作的函数,常用的聚合函数...

    oracle和db2的区别

    - 使用`TO_NUMBER('数字字符串')`来进行字符串到数字的转换。 - **DB2**: - 使用`CAST('数字字符串' AS INTEGER)`进行同样的转换。 #### 8. 创建类似表 - **Oracle**: - 使用`CREATE TABLE A AS SELECT * FROM...

    DB2常用函数(初学者必备)

    本文将深入探讨DB2中的常用函数,这些函数覆盖了类型转换、日期时间操作、字符串处理以及数学计算等多个方面,对于初学者来说,掌握这些函数能够极大地提升在DB2环境下的数据操作效率。 ### 类型转换函数 DB2提供...

    db2常用函数整理.doc

    以上就是DB2常用函数的一些基本介绍,它们涵盖了数据处理、聚合、转换等多个方面,使得在DB2中进行数据操作和分析变得更加便捷和高效。在实际应用中,应结合具体需求选择合适的函数以实现特定功能。

    Oracle和DB2的转换[参照].pdf

    - Oracle将字符串转换为数字使用`to_number`,例如:`select to_number('123') from dual;` - DB2使用`cast`函数:`select cast('123' as integer) from sysibm.sysdummy1;` 8. **创建类似表** - Oracle通过`...

    DB2数据库函数大全

    这只是DB2数据库函数的一部分,实际上DB2还提供了许多其他功能强大的函数,包括日期处理、字符串操作、数学计算、类型转换等,它们在数据库查询和报表生成中起着至关重要的作用。掌握这些函数的使用,能极大地提高...

    ORACLE DB2开发中的对比

    例如,`select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual`可以将系统日期转换为指定格式的字符串。DB2则有`char()`、`varchar()`、`int()`、`date()`、`time()`等函数,如`select varchar(current ...

    db2与oracle差别.pdf

    强类型转换规则,意味着字符串和数字类型之间不能直接进行比较,除非显式转换。这一区别对应用程序的设计和实现产生了很大的影响。 四、SQL 方言 DB2 传统上坚持对 SQL 标准的支持,但 Oracle 实现了很多方言。...

    DB2 内部培训文档

    例如,将字符串转换为日期或数字等。此外,DB2还提供了一系列日期操作函数,如`CURRENT_DATE`、`CURRENT_TIME`等,这些函数可以帮助开发人员处理日期和时间相关的问题。 #### 五、常用函数及调用 DB2提供了丰富的...

    ORACLE移植DB2注意事项

    而在DB2中,则必须将数字转换为字符串形式来进行比较: ```sql SELECT * FROM t_comm_company WHERE companycode = '123'; ``` #### 2. 默认值的处理 在Oracle中,默认值可以为空或者不指定的情况下默认为NULL,但...

    db2函数大全,使用方法

    BIGINT() 函数用于将整型常量中的数字或字符串转换为 64 位整数。例如: SELECT BIGINT(EMP_NO) FROM BSEMPMS; 17. CEILING() 函数 CEILING() 函数用于计算比参数大或等于参数的最小的整数值。例如: SELECT ...

    DB2函数大全详细解释

    在数据库管理中,DB2提供了丰富的内置函数,用于处理和分析数据。这些函数在SQL查询中发挥着至关重要的作用,帮助用户执行计算、统计分析、字符串操作等多种任务。以下是DB2中一些常见的函数及其详细解释: 1. AVG...

    DB2函数名称及举例

    - **解释**:此语句用于计算表`BSEMPMS`中的`SALARY`和`BONUS`字段之间的相关性。 3. **COUNT()** - **描述**:计算行数。 - **示例**: ```sql SELECT COUNT(*) FROM BSEMPMS; ``` - **解释**:此语句用于...

    db2函数说明

    DB2的字符串函数支持对文本数据的操作,包括格式转换和基本的字符串运算。 - **ASCII(char_expr)**:返回char_expr中第一个字符的ASCII值。 - **BLOB(char_expr)**:将字符串转换为BLOB表达式。 - **CHAR(datetime-...

Global site tag (gtag.js) - Google Analytics