将一个百分数插入到数据库中 字段为啥类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个百分数插入到数据库中 字段为啥类型相关的知识,希望对你有一定的参考价值。
比如是从excel里读“5.18364%”存数据库里, 然后页面输出保留小数点后一位:“5.2%”,这个字段应该是什么类型啊?varchar? 数字类型的能存“%”符号么, 具体怎么转成“5.2%”形式啊,多谢
需要用字符型,如varchar,varchar2,char等。
原因:
因为百分数中的百分号属于字符,无法直接插入数字类型中。
演示:
1、创建测试表:
(id1 number(10,2),
id2 varchar2(10));
2、插入数据:
执行时会报错,因为number类型的字段中无法保存百分数。
insert into test values (1,\'20%\');按上边语句则可以成功,已经将20%转为字符保存。
读取的时候用格式format一下追问
比如是从excel里读“5.18364%”存数据库里, 然后页面输出保留小数点后一位:“5.2%”,这个字段应该是什么类型啊?varchar? 具体怎么转成“5.2%”形式啊,多谢
追答看用什么数据库,数据库不同,保存的字段有点区别,保存数据最好不要用varchar
sqlserver 用decimal或float
oracle用number型
字符格式化可以在页面转,也可以在sql里转
也可以直接存字符
向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE('{0}','YYYY-MM-DD'))
需要指出的是,C#中有datetime类型,但是这个类型是包括小时,分钟,秒的。这个格式与数据库中的Date类型不符,如果将now设为datetime类型插入数据会失败。
需要通过TO_DATE(‘字段‘,‘YYYY-MM-DD‘))转换。如下:
- string.Format("insert into tablename (TIME) values(TO_DATE(‘{0}‘,‘YYYY-MM-DD‘))",now)
错误写法:
- string.Format("insert into tablename (TIME) values(’ TO_DATE(‘{0}‘,‘YYYY-MM-DD‘)‘ )",now)
不需要逗号引起来,这是画蛇添足。
以上是关于将一个百分数插入到数据库中 字段为啥类型的主要内容,如果未能解决你的问题,请参考以下文章
求助oracle高手,将varchar类型数据插入到blob类型字段中