其他类型转换为字符型
int转换为char, 使用char(v_num) 或者cast。如:
create procedure Test(
OUT v_message varchar(100)
)
LANGUAGE SQL
BEGIN
DECLARE v_num int;
set v_num = 111;
set v_message = char(v_num);
END@
运行此存储过程call Test(?) 可以得到message结果为’111’也可以这样转换set v_message = cast(v_num as char(10));注意,cast不能将数值型转换为varchar类型,所以转换成char,然后再赋值给varchar.注意,如果v_num只声明而没有赋值,则v_num为null,转换后的v_message也为null
double转换为char
直接char(v_num)或cast(v_num as char(10));会有一些问题,如下存储过程:
create procedure Test(
OUT v_message varchar(100)
)
LANGUAGE SQL
BEGIN
DECLARE v_num double;
set v_num = 1.11;
set v_message = char(v_num);
END@
输出结果为1.11E0,解决办法为将double先转换为decimal型再转换为字符型。如下
set v_message = char(cast(v_num as decimal(8,2)));
或者set v_message = cast(cast(v_num as decimal(8,2)) as varchar(10));
但是这样也会出现问题,改成这样会的输出结果为: 000001.11。也就是数字前会有几个0,这是DB2中decimal转换为char的毛病,我的解决办法是写一个函数来消除数字字符串前面的0.此函数如下:
--去除数字字符串左边的0
create function RemoveZero(str varchar(100) )
returns varchar(100)
LANGUAGE SQL
BEGIN ATOMIC
DECLARE v_temp char;
DECLARE flag char;
DECLARE v_str varchar(100);
set v_temp = left(str,1);
set flag = SUBSTR(str,2,1);
set v_str = str;
while v_temp = '0' and flag <> '.'
do
set v_str = right(v_str,(length(v_str) - 1));
set v_temp = left(v_str,1);
set flag = SUBSTR(v_str,2,1);
end while;
return v_str;
END
然后在decimal转换为char后加上此函数即可消除数字字符串左边的0 ,如:
set v_message = RemoveZero(char(cast(v_num as decimal(8,2))));
decimal转换为char
直接char(v_num)或cast(v_num as char(10)),正如上面所说,数字前面会出现0,解决办法同上
date转换为char
直接char(v_date)或cast(v_date as char(10)),如下:
create procedure Test(
OUT v_message varchar(100)
)
LANGUAGE SQL
BEGIN
set v_message = char(CURRENT DATE );
END@
输出的值2010-12-29(今天的日期)
要注意的是虽然输出的是2010-12-29,但是如果JAVA调用此存储过程,输出的值不是2010-12-29,而是这样的格式2010/12/29。所以这样的语句
select * from test where char(CURRENT DATE ) = '2010-12-29'
在DB2有数据出来,但是在JAVA调用时,就算今天是2010-12-29,也不会又数据出来
解决办法是转换时这样转换: char_iso(current date)
字符型转换为其他类型
字符转换为int
字符转换为double
字符转换为decimal
字符转换为date
分享到:
相关推荐
西门子数据类型转换在工业自动化领域中是一个关键的议题,特别是在使用西门子S7系列PLC(可编程逻辑控制器)时。S7系列PLC支持多种数据类型,包括INT、DINT、REAL、STRING等,这些数据类型在不同场景下各有其应用。...
C++ 到 C# 数据类型转换 在软件开发中,数据类型转换是一个非常重要的步骤,特别是在使用不同的编程语言时。C++ 和 C# 是两种非常流行的编程语言,它们之间的数据类型转换是非常必要的。本文将详细介绍 C++ 到 C# ...
在VC++编程中,数据类型转换是至关重要的,特别是在处理字符串和不同数据格式之间交互时。以下是一些关于VC常用数据类型转换的详细说明: 1. **BSTR、LPSTR 和 LPWSTR** - **BSTR**(Basic String)是OLECHAR*类型...
MFC各种数据类型转换 MFC各种数据类型转换是C++编程中非常重要的一部分,包括了CString、int、string、char*之间的互转换。下面将详细介绍这些数据类型之间的转换方法。 CString与string之间的转换 CString和...
### 数据库技术:SQL数据类型转换 在数据库管理和查询操作中,经常需要对不同数据类型进行转换以满足特定的需求或实现特定的功能。SQL Server 提供了两种常用的数据类型转换方式:`CAST()` 和 `CONVERT()` 函数。这...
数据类型转换在编程中是一项基础且重要的任务,它涉及到不同数据表示形式间的转换,以便适应不同的计算需求或存储条件。本工具专注于浮点型数据的转换,尤其关注单精度(float)和双精度(double)浮点数在不同格式...
在Java这样的强类型语言中,了解并熟练掌握数据类型转换、运算符和方法是成为一名合格的程序员的必经之路。在这个"day02 【数据类型转换、运算符、方法入门】"的学习资料中,我们将深入探讨这些关键概念。 首先,...
这篇博客“Struts2数据类型转换器”可能深入探讨了这个主题,虽然具体的细节无法在此给出,但我们可以根据Struts2中数据类型转换的工作原理来展开讨论。 在Java Web开发中,用户通过表单提交的数据通常是字符串形式...
C# 数据类型转换问题集锦 C# 数据类型转换是一个非常重要的概念,掌握好数据类型转换对于编程开发非常重要。本文将会对 C# 中的数据类型转换进行总结和分析,并提供了一些实用的代码示例。 在 C# 中,数据类型可以...
在Python编程语言中,数据类型转换是至关重要的操作,它允许程序员在不同数据类型之间灵活地切换,以满足特定的编程需求。以下是Python中几种主要的数据类型转换函数及其使用方法的详细说明: 1. **int() 函数**: ...
一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问下面笔者就开发中的一些体会介绍给大家。 我们知道,...
《TIA博途S7通用函数库LGF详解——数据类型转换与数据处理》 TIA博途(Totally Integrated Automation Portal)是西门子推出的一款全集成自动化软件,它涵盖了从项目规划、编程到诊断和维护的全过程。在TIA博途中,...
jni数据类型转换例程 1. java向native传递常用基本数据类型 和字符串类型 2. java向native传递数组类型 3. java向native传递自定义java对象 4. java向native传递任意java对象(以向native传递ArrayList为例) 5....
### MySQL 数据类型转换详解 #### 一、引言 在MySQL数据库中,数据类型转换是一项非常重要的技能。它可以帮助我们灵活地处理不同类型的数据,尤其是在进行数据检索或处理时,经常需要将一种数据类型转换为另一种...
* 数据类型转换是指将一种数据类型转换为另一种数据类型。常见的数据类型转换有以下几种: 1. 显式转换(Explicit Conversion):使用强制转换符号()进行转换。 2. 隐式转换(Implicit Conversion):系统自动...
VHDL 数据类型转换函数 VHDL 中的数据类型转换函数是指在 VHDL 程序中将不同类型的数据相互转换的函数。这些函数的作用是实现不同类型的数据之间的转换,以便正确地进行赋值操作。 在 VHDL 中,数据类型转换函数...
### C++与PB的数据类型转换关系 在C++与PB(PowerBuilder)之间进行数据交换时,正确地处理数据类型转换至关重要。本文将详细介绍这两种语言之间的数据类型转换规则及其应用场景,帮助开发人员更好地理解并应用这些...
在IT行业中,编程语言间的数据类型转换和时间戳处理是两个关键的概念,尤其在多语言交互或跨平台开发时更为重要。本项目"TypeByte@2019_C#_C++_C数据类型转换时间戳转换_"显然是针对C#、C++和C这三种编程语言,提供...