数据库中转换数据类型的几种方法

 我来答
博学小赵爱生活
高能答主

2019-11-18 · 专注于食品生活科技行业
博学小赵爱生活
采纳数:456 获赞数:111866

向TA提问 私信TA
展开全部

oracle有三种最基本的数据类型,即字符型、数值型、日期型。 (注意需要起别名的地方要起别名)

oracle提供的单行函数中,针对不同的数据类型,提供大量实用的函数,同时提供一系列数据类型转换函数,如下: 

sql.append(" select CURVE_NAME,S_YEAR_LIMIT,AVERAGE_VALUE,to_char(d_date,'yyyy-MM-dd') d_date from t_treasury_yield_curve t where d_date = to_date ('"+d_date+"','yyyy-MM-dd')");

24 小时的形式显示出来要用 HH24select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;to_date() function。

1、日期格式参数 含义说明

D 一周中的星期几。

DAY 天的名字,使用空格填充到 9 个字符。DD 月中的第几天,DDD 年中的第几天。

DY 天的简写名,IW ISO 标准的年中的第几周,IYYY ISO 标准的四位年份。YYYY 四位年份,

YYY,YY,Y 年份的最后三位,两位,一位。

select sysdate,sysdate - interval '7' month from dual。

当前时间减去 7 年的时间。

select sysdate,sysdate - interval '7' year from dual。

时间间隔乘以一个数字。

select sysdate,sysdate - 8 *interval '2' hour from dual

2、日期到字符操作

select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual,select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual,select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from dual。

select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from dual。

3、字符到日期操作

select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual。

具体用法和上面的 to_char 差不多。

4、TO_NUMBER 

使用TO_NUMBER函数将字符转换为数字 

TO_NUMBER(char[, '格式'])

数字格式格式:

9 代表一个数字 。

0 强制显示0 。

$ 放置一个$符 。

L 放置一个浮动本地货币符 。

. 显示小数点 。

, 显示千位指示符。

扩展资料:

在使用数据类型转换之前,同样的 SQL 在有的服务器不报错,主要是数据库的版本不同,当然该过配置的不算。

常见的两种类型转换错误如下:

ERROR: operator does not exist: integer = character varying。

ERROR: operator does not exist: character varying = integer。

字符串转数字,数字转字符串。这一点支持的不如 MySQL 好,当然 PostgreSQL 在新版本中也对这个问题做了改进!

第一种转换方式:使用 CAST 函数。

SELECT * FROM xttblog WHERE id = CAST(888 AS VARCHAR);

SELECT * FROM xttblog WHERE id = CAST('888' AS integer)。

第二种转换方式:使用“::”操作字段。

格式,字段 :: 要转换为的数据类型。

SELECT * FROM xttblog WHERE id = 888 :: VARCHAR;

SELECT * FROM xttblog WHERE id = '888' :: integer。

数据类型转换,虽然看起来很痛苦,但是如果用户的类型用的不对,查询效率会下降。所以,在设计的时候,字段的类型,一定要设计的合理,尤其是在关联表的时候。



coder_tmp
推荐于2017-10-09 · TA获得超过443个赞
知道小有建树答主
回答量:547
采纳率:100%
帮助的人:349万
展开全部
sqlserver :

convert(新类型,字段) ,如

convert(nvarchar(10),getdate(),23)--将查询到的当前日期转为nvarchar(10)
convert(decimal(10,2),totalMoney)
convert(int,SortField)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
归海一刀鑫
2013-02-26
知道答主
回答量:1
采纳率:0%
帮助的人:1521
展开全部
还有一种 cast():



case(@name as 数据类型)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式