sql的货币型数字如何转化成
⑴ sql server 货币 字段 类型 一般用什么类型
货币的字段类型一般有int,float,money/smallmoney,decimal/numberic。
根据存储数据的精度不同选择:
int只能存储整数的钱。
money/smallmoney数据类型精确到它们所代表的货币单位的万分之一 。
decimal/numberic 可以自定义小数位和能存储的数据精度, 所以一般使用这种类型的人会多一些。
float 对货币这种需要精确值的数值不合适。
总结:
在财务方面最好实用money与decimal类型。
如果是简单的计算可以使用float类型,不过float类型在有些平台上取出数据并不是那么准确,有可能会丢失精度。所以说如果在性能稳定的平台中,开销不是很大,建议使用以上两种类型。
(1)sql的货币型数字如何转化成扩展阅读:
SQL数据类型:
1、bit 整型
bit数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或False 、On 或Off.
注意:很省空间的一种数据类型,如果能够满足需求应该尽量多用。
2、tinyint 整型
tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。这种数据类型在数据库中占用1 个字节。
3、smallint 整型
smallint 数据类型可以存储从- 2的15次幂(-32768)到2的15次幂(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间。
4、int 整型
int 数据类型可以存储从- 2的31次幂(-2147483648)到2的31次幂 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节。
5、decimal 精确数值型
decimal 数据类型能用来存储从-10的38次幂-1到10的38次幂-1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数。
6、numeric 精确数值型
numeric数据类型与decimal 相似。
7、smallmoney 货币型
smallmoney 数据类型用来表示钱和货币值。这种数据类型能存储从-214748.3648 到214748.3647 之间的数据,精确到货币单位的万分之一。
8、money 货币型
money数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一。
9、float 近似数值型
float 数据类型是一种近似数值类型,供浮点数使用。说浮点数是近似的,是因为在其范围内不是所有的数都能精确表示。浮点数可以是从-1.79E+308到1.79E+308 之间的任意数。
10、real 近似数值型
real 数据类型像浮点数一样,是近似数值类型。它可以表示数值在-3.40E+38到3.40E+38之间的浮点数。
⑵ 在SQL语句里面如何将字符型转换成数字型
先检查金额列的数据是否都符合小数规范,用cast(金额 asdecimal(10,4))>500或者
convert(decimal(10,4),金额)>500
注:decimal的长度和小数位数根据自己需要设定
sql中将字符串数字转换成数字:
方法一:SELECT CAST('123' AS SIGNEDinteger);
方法二:SELECT CONVERT('123',SIGNED);
方法三:SELECT '123'+0;
(2)sql的货币型数字如何转化成扩展阅读:
能将字符型转换成数字型,就能将数字转化为字符,对于精确数值的数据类型,转换出来的字符串就是我们存储的数值。比如:
declare @i int
set @i=123456789
print 'test:'+convert(varchar(20),@i)
输出就是:test:123456789
而如果对于近似数值的数据类型,那么可就没有那么简单了。
declare @i float
set @i=123456789
print 'test:'+convert(varchar(20),@i)
输出结果:test:1.23457e+008
⑶ sql数据库中如何把money数据由元转换成万元显示,并且小数点2位,整数部分每3位用逗号隔开,谢谢!
通常来讲这种操作都是放在web前段展示的时候做转换,只是在result中给自己看意义不大,一般数据库不支持这样的转换。
理论上来讲还是可行的,说一下思路吧,首先肯定是要强转成字符类型的,然后用index函数以小数点做分割,再操作整数位和小数位,用len函数和substring函数切分,最后拼接。
⑷ sql server中的怎么把数值型转换为字符串
有两种。
1.转换(int,字段名)
例如:选择convert(int,'3')
选择cast('3'作为int)
一般来说,没有必要将字符串转换为数字类型,如果你需要比较两个字段是相等的,但为字符串类型字段,类型,用“=”来比较这两个值是相等的,SQLSERVER将自动将字符串转换为一个数字,然后比较。
(4)sql的货币型数字如何转化成扩展阅读:
注意事项:
这两个函数都执行强制转换,但是语法不同。据说有一些不同的转换,但我更习惯于使用转换函数,它更像一个函数的语法一方面,可以指定的格式转换,将时间和价值转换为一个字符串。
对于数据类型的确切值,转换后的字符串是我们存储的值。如:
声明@iintset@i=123456789print'test:'+转换(varchar(20),@i)
输出是:test:123456789
对于具有近似值的数据类型,情况就不那么简单了。
声明@ifloatset@i=123456789print'test:'+转换(varchar(20),@i):test:1.23457e+008
⑸ sql server 2005 money类型转换成MYSQL 应该是什么类型
SQL Server
money 数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一
MySQL
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
压缩的“严格”定点数。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。小数点和(负数)的‘-’符号不包括在M中。如果D是0,则值没有小数点或分数部分。DECIMAL整数最大位数(M)为65。支持的十进制数的最大位数(D)是30。如果D被省略,默认是0。如果M被省略,默认是10。
如果指定UNSIGNED,不允许负值。
所有DECIMAL列的基本计算(+,-,*,/)用65位精度完成。
具体来说, 也就是
DECIMAL ( 18 , 4)
因为 -9220亿到9220 亿 也就是 整数部分, 需要 14 位 ( 亿 需要 9位。 )
然后小数部分是 万分之一, 也就是 0.0001 需要 4位
⑹ sql 货币的字段要求取出万,千,百、。。。分位上的数字 怎么写啊/
select '万:'||substr(trunc(12300.6/10000),-1)||'千:'||substr(trunc(12300.6/1000),-1)||'百:'||substr(trunc(12300.6/100),-1)||'十:'||substr(trunc(12300.6/10),-1)||'个:'||substr(trunc(12300.6/1),-1) ||'角:'||substr(trunc(12345.67/0.1),-1)||'分:'||substr(trunc(12345.67/0.01),-1) from al 其实可以自己写个方法 我写的sql是最呆的
⑺ SQL里怎么做成金额的数据格式 就是货币那样的 如 ¥123,578.00 因为程序要往里写入这样的数据
数据库字段设为
money
向数据库写入的时候将¥123,578.00转换成123578.00即可,如果需要显示的时候再转回去,我有C#和js的转换方法
如果觉得麻烦就只能以字符串形式存储字段了
⑻ 在SQL数据库中,设置了一个字段的类型为money,但是money类型数据保留的是四位小数,如何设置为两位小数
1、直接型,通过ToString()函数直接格式化。
例如把money = 12345.67 格式成 money = 12,345.67。代码如下:
string_money=moeny.ToString("N")或者string_moeny=money.ToString("#,###.00")
2、本地化型,通过CultureInfo类,根据指定的文化进行格式化,同样的,代码如下:
doublemoney=12345.67;
CultrueInfoci=newCultrueInfo("zh-CH");
string_money=money.ToString("c",ci)。
⑼ 如何将Sql中的money类型的数据转化为C#中的int型
将Sql中的money类型的数据转化为C#中的int型:
string st1 = ConfigurationManager.ConnectionStrings["yikawangluoConnectionString"].ConnectionString;
SqlConnection Conn1 = new SqlConnection(st1);
Conn1.Open();
SqlCommand mycomm1 = new SqlCommand("select account from userinfo where name='"+name2+"'", Conn1);
try
{
SqlDataReader r = mycomm1.ExecuteReader();
r.Read();
// TextBox1.Text = ((DbType)r[0]).ToString();
decimal money = Convert.ToDecimal(r[0]);
TextBox1.Text = money.ToString();
}
catch (SqlException eeee)
{
// Response.Redirect("error1.aspx");
}
数据库中的money类型对应C#的decimal类型,要解决这个问题起码有两种办法转换数据类型:
1:
使用Convert类提供的静态方法ToDecimal
decimal money = Convert.ToDecimal(this.lable1.Text.Trim());
2:
使用decimal类提供的静态方法Parse
decimal money = decimal.Parse(this.lable1.Text.Trim());
向数据库中插入money类型时,不需要单引号,类似于int型的插入操作。
⑽ sql怎么将字符转换成money类型
如果proction_info表中的价格列本身是money类型的,那么insert合法的数字字符串会自动转换成money类型,不需转换.
如果proction_info表中的价格列本身不是money类型,而是varchar类型,那么输入什么字符就是什么字符.在查询显示的时候再转换成money类型,用
convert(money,列)
或
cast(列 as money)