作业帮 > 作文素材 > 教育资讯

sql舍去小数

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/24 14:29:57 作文素材
sql舍去小数作文素材

篇一:Sql 中取小数点后面两位小数

Sql 中取小数点后面两位小数

select convert(numeric(8,2),round(UnTaxAmount,2))as UnTaxAmount from View_SaleVoice

select cast(UnTaxAmount as decimal(20,2)) as UnTaxAmount from View_SaleVoice Datagrid,DataList,Repeate等的数据格式设置表达式

DataFormatString="{0:N0}%“

DataFormatString="${0:N2}"

DataFormatString="{0:N0}个"

DataFormatString="No.{0:N0}"

DataFormatString="{0:yyyy-MM-dd hh:mm:ss}"

数据格式设置表达式

.NET Framework 格式设置表达式,它在数据显示在列中之前先应用于数据。 此表达式由可选静态文本和用以下格式表示的格式说明符组成:

{0:format specifier}

0 是参数索引,它指示列中要格式化的数据元素;因此,通常用零来指示第一个(且唯一的)元素。

format specifier 前面有一个冒号 (:),它由一个或多个字母组成,指示如何格式化数据。 可以使用的格式说明符取决于要格式化的数据类型:日期、数字或其他类型。

下表显示了不同数据类型的格式设置表达式的示例。有关格式设置表达式的更多信息,请参见格式化类型。

格式设置表达式 应用于此数据类型 说明

Price: {0:C} numeric/decimal 显示“Price:”,后跟以货币格式表示的数字。货币格式取决于通过 Page 指令或 Web.config 文件中的区域性属性指定的区域性设置。

{0:D4} integer(不能和小数一起使用。) 在由零填充的四个字符宽的字段中显示整数。

{0:N2}% numeric 显示精确到小数点后两位的数字,后跟“%”。

{0:000.0} numeric/decimal 四舍五入到小数点后一位的数字。不到三位的数字用零填充。

{0:D} date/datetime 长日期格式(“Thursday, August 06, 1996”)。日期格式取决于页或 Web.config 文件的区域性设置。

{0:d} date/datetime 短日期格式(“12/31/99”)。

{0:yy-MM-dd} date/datetime 用数字的年-月-日表示的日期(96-08-06)。

ASP.NET设置数据格式应用示例:

{0:d} YY-MM-DD

{0:p} 百分比00.00%

{0:N2} 12.68

{0:N0} 13

{0:c2} $12.68

{0:d} 3/23/2003

{0:T} 12:00:00 AM

{0:男;;女}

DataGrid数据格式的Format-- DataFormatString

DataFormatString="{0:格式字符串}"

如原来的数据为「12.34」,若格式设定为 {0:N1},则输出为「12.3」

格式字符串 资料 结果

"{0:C}" 12345.6789 -> $12,345.68

"{0:C}" -12345.6789 -> ($12,345.68)

"{0:D}" 12345 12345

"{0:D8}" 12345 -> 00012345

"{0:E}" 12345.6789 -> 1234568E+004

"{0:E10}" 12345.6789 -> 1.2345678900E+004

"{0:F}" 12345.6789 -> 12345.68

"{0:F0}" 12345.6789 -> 12346

"{0:G}" 12345.6789 -> 12345.6789

"{0:G7}" 123456789 -> 1.234568E8

"{0:N}" 12345.6789 -> 12,345.68

"{0:N4}" 123456789 -> 123,456,789.0000

"Total: {0:C}" 12345.6789 -> Total: $12345.68

DateTime.Now.ToString("yyyy-MM-dd");//这种模式最好

aspx:

在我们从业务逻辑层获得数据实体时候,接下来的事情就是要绑定到控件中。数据实体中的一些字段可以直接绑定到界面中,但是有一些字段需要重新格式化格式。比如货币单位

字段,需要显示货币符号和每隔三位显示分隔符;再比如日期字段,数据库中存放的是日期和时间,但是在界面上需要按照XXXX年XX月XX日的格式显示。这时候我们就用到了DataFormatString属性。

例如上面的代码展示了日期和货币两种绑定方式。DataFormatString中的{0}是固定的格式,这和String.Fromat(“{0}”, someString)中的{0}是一个用法,表示绑定上下文的参数索引编号。然后,在后面加入格式化字符串,具体的使用方法可以参考MSDN。 这里需要注意以下几点

1. 在GridView中的asp:BoundField使用DataFormatString必须设置属性HtmlEncode="False",否则不起作用。

2. 如果需要使用日期类型的格式化字符串,必须数据实体中对应的字段也应该日起类型的。

3. 格式化字符串C代表货币单位,需要绑定的数据类型应该是数字类型的。如果是字符串类型的不起作用,需要手动添加格式化字符串为DataFormatString="¥{0:C}"。 总结:

GridView中使用DataFromatString与在DataGrid中使用起来有些不同的!在GridView中的BoundField新增了HtmlEncode 属性,且默认是true,这就使得DataFromatString失效!

string.format格式结果

-------------------------------------------------------------------------------- String.Format

(C) Currency: . . . . . . . . ($123.00)

(D) Decimal:. . . . . . . . . -123

(E) Scientific: . . . . . . . -1.234500E+002

(F) Fixed point:. . . . . . . -123.45

(G) General:. . . . . . . . . -123

(N) Number: . . . . . . . . . -123.00

(P) Percent:. . . . . . . . . -12,345.00 %

(R) Round-trip: . . . . . . . -123.45

(X) Hexadecimal:. . . . . . . FFFFFF85

(d) Short date: . . . . . . . 6/26/2004

(D) Long date:. . . . . . . . Saturday, June 26, 2004

(t) Short time: . . . . . . . 8:11 PM

(T) Long time:. . . . . . . . 8:11:04 PM

(f) Full date/short time: . . Saturday, June 26, 2004 8:11 PM

(F) Full date/long time:. . . Saturday, June 26, 2004 8:11:04 PM (g) General date/short time:. 6/26/2004 8:11 PM

(G) General date/long time: . 6/26/2004 8:11:04 PM

(M) Month:. . . . . . . . . . June 26

(R) RFC1123:. . . . . . . . . Sat, 26 Jun 2004 20:11:04 GMT

(s) Sortable: . . . . . . . . 2004-06-26T20:11:04

(u) Universal sortable: . . . 2004-06-26 20:11:04Z (invariant)

(U) Universal sortable: . . . Sunday, June 27, 2004 3:11:04 AM

(Y) Year: . . . . . . . . . . June, 2004

(G) General

sql舍去小数

:. . . . . . . . . Green

(F) Flags:. . . . . . . . . . Green (flags or integer)

(D) Decimal number: . . . . . 3

(X) Hexadecimal:. . . . . . . 00000003

说明:

String.Format

将指定的 String 中的每个格式项替换为相应对象的值的文本等效项。

例子:

int iVisit = 100;

string szName = "Jackfled";

Response.Write(String.Format("您的帐号是:{0} 。访问了 {1} 次.", szName, iVisit));

Repeater中DataBinder.Eval(Container.DataItem,"转换的类型","格式") 也可以采用和DataFormatString一样的处理

附SQL中取小数点后两位语句:

select round(小数,2) from 表

select convert(decimal(18,2),round(小数,2)) from 表

select cast(小数 as numeric(10,2)) from 表

篇二:Server SQL查询四舍五入 解决方法 以及不出现无限循环小数

1.SQL查询四舍五入解决方法

方法1:

SELECT CAST('123.456' as decimal) 将会得到 123(小数点后面的将会被省略掉)。 如果希望得到小数点后面的两位。

则需要把上面的改为

SELECT CAST('123.456' as decimal(38, 2)) ===>123.46

说明1:

这里的decimal英文为: 小数, 十进制

decimal(38,2)

这里的38是这个小数的位数有多少位, 一般最大不超过38位, 所以写38是不会出错的! 如果:

SELECT CAST('123.456' as decimal(2, 2))

就会出错, 为什么呢, 因为这个123.456小数点后是3位值, 所以这个38这个位置最少是3! 说明2:

decimal后面的参数中的2是小数点后取几位, 是2就取两位, 是3就取三位! 并且是四舍五入后的结果!

说明3:

cast应该就是转换数值的意思了

自动四舍五入了!

方法2:

SELECT ROUND(123.75633, 2, 1), ROUND(123.75633, 2)

上面的SQL得到的2个值是不一样的,前一个是:123.75000,后一个是:123.76000。 因为前者在进行四舍五入之前,小数点后已经被截取,保留了2位。

而后者则没有被截取,四舍五入时自然就会得到123.76000

ROUND

返回数字表达式并四舍五入为指定的长度或精度。

语法

ROUND ( numeric_e-xpression , length [ , function ] )

参数

numeric_e-xpression

精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

length

是 numeric_e-xpression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_e-xpression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_e-xpression 则按 length 所指定的在小数点的左边四舍五入。

function

是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_e-xpression 将四舍五入。当指定 0 以外的值时,将截断 numeric_e-xpression。

返回类型

返回与 numeric_e-xpression 相同的类型。

注释

ROUND 始终返回一个值。如果 length 是负数且大于小数点前的数字个数,ROUND 将返回 0。

示例结果

ROUND(748.58, -4) 0

当 length 是负数时,无论什么数据类型,ROUND 都将返回一个四舍五入的

numeric_e-xpression。

示例结果

ROUND(748.58, -1) 750.00

ROUND(748.58, -2) 700.00

ROUND(748.58, -3) 1000.00

示例

A. 使用 ROUND 和估计值

下例显示两个表达式,说明使用 ROUND 函数且最后一个数字始终是估计值。

Select ROUND(123.9994, 3), ROUND(123.9995, 3)

GO

下面是结果集:

----------- -----------

123.9990 124.0000

B. 使用 ROUND 和四舍五入的近似值

下例显示四舍五入和近似值。

语句结果

Select ROUND(123.4545, 2)

123.4500

Select ROUND(123.45, -2)

100.00

C. 使用 ROUND 截断

下例使用两个 Select 语句说明四舍五入和截断之间的区别。第一个语句四舍五入结果。第二个语句截断结果。

语句结果

Select ROUND(150.75, 0)

151.00

Select ROUND(150.75, 0, 1)

150.00

2.四舍五入后不出现无限循环小数

在此次报表中,发现报表计算的结果同客户原始报表的数据存在些差异,因对方对数据的精度要求较严格,所以不赶马虎,经多次对比,发现原始报表计算使用4位精度,而现报价计算采用float数据类型。15位精度,在结果上产生了部分差异,后经商量,决定同客户原始系统一致,采用4位精度计算,在SQL Server中,对float数据类型的四舍五入可以采用round()函数,由于结果是采用计算表达式,结果中产生了无限循环小数,直接使用round()函数并不能进行四舍五入操作,需先进行数据类型的转换,将float类型的结果先行转换为numeric数据类型,再进行round()四舍五入操作,才能得到正确结果。看来在SQL Server中采用float数据类型时得再多层考虑

select gld,round(convert(numeric(6,3),ejgyjfbz),2),round(convert(numeric(6,3),sjgyjfbz),2) from gld

篇三:sql取整,四舍五入,截取(Round、cast、convert)

sql取整,四舍五入,截取(Round、cast、

convert)

(一) ROUND()

(二) CAST() (三) CONVERT()

1、ROUND

返回数字表达式并四舍五入为指定的长度或精度。

语法

ROUND ( numeric_expression , length [ , function ] )

参数

numeric_expression

精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

length

是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。

function

是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。

返回类型

返回与 numeric_expression 相同的类型。

注释

ROUND 始终返回一个值。如果 length 是正数。

示例

select ROUND(748.588, 1)

select ROUND(748.588, 2)

select ROUND(748.588, 2,0)

select ROUND(748.588, 2,1)

select ROUND(748.588, 2,-2)

结果

748.600

748.590

748.590

748.580

748.580

ROUND 始终返回一个值。如果 length 是负数且大于小数点前的数字个数,ROUND 将返回 0。

示例

select ROUND(748.58, -4)

结果

当 length 是负数时,无论什么数据类型,ROUND 都将返回一个四舍五入的 numeric_expression。

示例

select ROUND(748.58, -1)

select ROUND(748.58, -2) select ROUND(748.58, -3)

结果

750.00

700.00

1000.00

2、CAST()

select ROUND(748.588, 1)

select cast(round(1222.5255,2) as numeric(20,3))

select cast(round(1222.5255,2) as numeric(20,1))

CAST将一种数据类型的表达式转换为另一种数据类型的表达式。

语法

CAST (expression AS data_type [ (length ) ] )

select cast(1222.5255 as numeric(20,1))

取数字1222.5255 的20位以内的数,其中保留1位小数

3、CONVERT()

定义和用法

CONVERT() 函数是把日期转换为新数据类型的通用函数。

CONVERT() 函数可以用不同的格式显示日期/时间数据。

语法

CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

实例

下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:

select CONVERT(decimal,12.12*10)/10

CONVERT(VARCHAR(19),GETDATE())

CONVERT(VARCHAR(10),GETDATE(),110)

CONVERT(VARCHAR(11),GETDATE(),106)

CONVERT(VARCHAR(24),GETDATE(),113)

结果类似:

12.100000

Dec 29 2008 11:45 PM

12-29-2008

29 Dec 08

29 Dec 2008 16:25:46.635

篇四:SQL 根据进舍位或四舍五入来求值

go

--创建函数

Create function dbo.FUN_GetValueByRoundMode

(

@Value decimal(18,6), --需进行运算的值

@Bit int, --小数位数

@RoundMode char(1)) --求值方式:-四舍五入、-舍去、-进位

Returns decimal(18,6)

As

begin

declare @Result decimal(18,6)

set @Value=isnull(@Value,0)

if @RoundMode='1' --舍去

Select @Result=Round(@Value,@Bit,1)

else if @RoundMode='2' --进位

Begin

if @Value>Round(@Value,@Bit,1) --确保在有尾数的情况下才进位

Select @Result=Round(@Value,@Bit,1)+1.0/Power(10,@Bit)

else

Select @Result=Round(@Value,@Bit,1)

end

else

Select @Result=Round(@Value,@Bit)

Return Isnull(@Result,0)

end

--测试示例

select dbo.FUN_GetValueByRoundMode(9.82458,3,'0')

select dbo.FUN_GetValueByRoundMode(9.82458,3,'1')

select dbo.FUN_GetValueByRoundMode(9.82458,3,'2')

--运行结果

/*

9.825000

9.824000

9.825000 */

篇五:SQL server一些常见函数

1.数值处理函数

(1)求绝对值函数ABS()

【格式】 ABS(<数值表达式>)

【功能】 返回<数值表达式>的绝对值,参数的类型为N型,得到的函数值的类型为N型。

【例如】

输入语句:?ABS(-26.2),ABS(26.6),ABS(-50)

显示结果: 26.2 26.6 50

注意:语句 ? <内存变量>|<常量>|<表达式>是非格式输出语句,具有计算功能。语句在命令窗口输入。

(2)取整函数INT()

【格式】 INT(<数值表达式>)

【功能】 返回<数值表达式>的整数部分。

【例如】

输入语句:?INT(26.2),INT(26.9),INT(-26.2),INT(-26.9)

显示结果: 26 26 -26 -26

(3)求四舍五入函数ROUND()

【格式】ROUND(<数值表达式1>,<数值表达式2>)

【功能】返回<数值表达式1>按<数值表达式2>所指定的保留小数位数进行四舍五入的值。若<数值表达式2>的值为负,则返回小数点左边为<数值表达式2>绝对值个数零的整数值。

【例如】:

输入语句:?ROUND(68.345,2),ROUND(68.745,0),ROUND(68.345,-1),ROUND(68.345,-2) 显示结果: 68.35 69 70 100

注意:在执行函数ROUND(68.345,-1)时,小数点左边的数是两位68,由于参数2为-1,则返回值是整数且应带一个0,故经四舍五入后,8进位到6则首位变为7,第二位按规定是0。所以该函数的返回值是70。

(4)求平方根SQRT()

【格式】SQRT(<数值表达式>)

【功能】返回<数值表达式>的平方根。

【说明】<数值表达式>的值必须为正数或零。

【例如】

输入语句:?SQRT(25.9),SQRT(8*8),SQRT(ABS(-36))

显示结果: 5.09 8.00 6.00

(5)求余函数MOD()

【格式】MOD(<数值表达式1>,<数值表达式2>)

【功能】返回<数值表达式1>除以<数值表达式2>的余数。

【说明】函数值的符号与<表达式2>相同。

【例如】

输入语句:?MOD(25,4),MOD(25,-4),MOD(-25,4),MOD(-25,-4)

显示结果: 1 -3 3 -1

(6)求指数函数EXP()

【格式】EXP(<数值表达式>)

【功能】返回以e为底,<数值表达式>为幂次的指数值。

【例如】

输入语句:?EXP(5.5),EXP(1),EXP(-5),EXP(-6)

显示结果: 244.69 2.72 0.01 0.00

(7)求对数函数LOG()

【格式】LOG(<数值表达式>)

【功能】返回<数值表达式>的自然对数值。

【说明】<数值表达式>值必须大于零。

【例如】

输入语句:?LOG(16.5),LOG(10),LOG(1)

显示结果: 2.80 2.30 0.00

(8)求最大值函数MAX()

【格式】MAX(<表达式1>,<表达式2>[,<表达式3>?])

【功能】返回表达式串<表达式1>,<表达式2>[,<表达式3>?]中的最大值。

【说明】这些表达式必须具有相同数据类型(可以同是字符、数值或日期)。

【例如】

输入语句:?MAX(-23,3.56,12.8,23.1),MAX('BOOK','PEN','READ')

显示结果: 23.1 READ &&比较字符的ASCII大小

(9)求最小值函数MIN()

【格式】MIN(<表达式1>,<表达式2>[,<表达式3>?])

【功能】返回表达式串<表达式1>,<表达式2>[,<表达式3>?]中的最小值。

【说明】这些表达式必须具有相同数据类型(可以同是字符、数值或日期)。

【例如】

输入语句:?MIN(-23,3.56,12.8,23.1),MIN('BOOK','PEN','READ')

显示结果: -23 BOOK

2.字符处理函数

(1)宏代换函数&

【格式】&<字符型内存变量>[.<字符表达式>]

【功能】将存储在字符型内存变量中的字符串替换出现。此外,利用可选的句号分隔符“.”及<字符表达式>,还可将额外的<字符表达式>值添在其尾端,而且<字符表达式>本身也可以是一个宏。

【例如】输入下列语句序列

STORE "LIYI" TO XM &&赋值语句

STORE "XM" TO ZXM

?&ZXM

显示结果:LIYI

输入语句:XM="'LIYI'" &&赋值语句

?&XM

显示结果:LIYI

输入语句序列:N="1"

M="2"

X12="COMPUTER"

?X&N.&M

显示结果:COMPUTER

注意:赋值语句的功能是将表达式的值送到变量中。

(2)删除字符串空格函数

① 删除字符串前置空格及尾部空格函数ALLTRIM()

【格式】ALLTRIM(<字符表达式>)

【功能】返回删除了<字符表达式>的前置空格及尾部空格的字符串。

【例如】输入下列语句序列

X="计算机"

Y=" 应用"

?ALLTRIM(X+Y)

?ALLTRIM(X)+ALLTRIM(Y)

显示结果:计算机 应用

计算机应用

② 删除字符串前置空格函数LTRIM()

【格式】LTRIM(<字符表达式>)

【功能】返回删除了<字符表达式>的前置空格的字符串。

【例如】输入下列语句序列(□表示空格)

X="计算机□□□□"

Y="□□应用"

?LTRIM(X+Y)

?LTRIM(X)+LTRIM(Y)

显示结果:计算机□□□□□□应用

计算机□□□□应用

③ 删除字符串尾部空格函数RTRIM()

【格式】RTRIM(<字符表达式>)

【功能】返回删除了<字符表达式>的尾部空格的字符串。

【例如】输入下列语句序列

X="计算机□□□□"

Y="应用□□"

?RTRIM(X+Y)

?RTRIM(X)+RTRIM(Y)

显示结果:计算机□□□□应用

计算机应用

(3)搜索字符串起始位置函数AT()和ATC()

【格式】AT(<字符表达式1>,<字符表达式2>[,<数值表达式>])

【功能】 返回<字符表达式1>第一次出现在<字符表达式2>中的整数位置值(从左到右计数)。若<字符表达式1>未出现在<字符表达式2>中,则返回零值。如果有可选项<数值表达式>,则在<字符表达式2>中从<数值表达式>值代表出现<字符表达式1>的次数开始查找。函数AT

作文素材