首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在SQL Server中截断(不舍入)小数位

在 SQL Server 中,可以使用 FLOOR 函数来截断(不四舍五入)小数位。FLOOR 函数可以将一个数值向下取整到指定的精度。

例如,如果要将数值 123.456 截断为两位小数,可以使用以下 SQL 语句:

代码语言:sql
复制
SELECT FLOOR(123.456 * 100) / 100

这将返回 123.45,因为 123.456 * 100 等于 12345.6,向下取整后再除以 100 即可得到 123.45

需要注意的是,FLOOR 函数只能向下取整,如果要向上取整,可以使用 CEILING 函数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SQL函数 TRUNCATE

描述TRUNCATE通过从小数点开始按小数位数截断NUMERIC-EXPR。它不对数字进行四舍五入,也不添加填充零。在截断操作之前,将删除前导零和尾随零。...换句话说,在小数点右侧的零位数处执行截断;所有小数位和小数点本身都被截断。如果小数位数为负数,则在小数点左侧的位数处执行截断。如果小数位数等于或大于数字中的整数位数,则返回零。...ROUND 允许指定舍入(默认)或截断; TRUNCATE 不执行舍入。...当舍入到固定的小数位数很重要时使用 $JUSTIFY - 例如,在表示货币金额时。 $JUSTIFY 在舍入操作之后返回指定数量的尾随零。当要舍入的位数大于小数位数时,$JUSTIFY 补零。...$JUSTIFY 还右对齐数字,以便 DecimalSeparator 字符在一列数字中对齐。 $JUSTIFY 不会截断。示例以下两个示例都将数字截断为两位小数。

1.2K10

SQL函数 ROUND

SQL函数 ROUND以指定位数舍入或截断数字的数值函数。...在 ROUND 循环或截断操作后删除尾随零。不返回前导零。如果 scale 为正数,则在小数点右侧的该位数处进行舍入。如果 scale 等于或大于小数位数,则不会发生舍入或零填充。...ROUND 允许指定舍入(默认)或截断; TRUNCATE 不执行舍入。...当舍入到固定的小数位数很重要时使用 $JUSTIFY - 例如,在表示货币金额时。 $JUSTIFY 在舍入操作之后返回指定数量的尾随零。当要舍入的位数大于小数位数时,$JUSTIFY 补零。...$JUSTIFY 还右对齐数字,以便 DecimalSeparator 字符在一列数字中对齐。 $JUSTIFY 不会截断。$DOUBLE 数字$DOUBLE IEEE 浮点数使用二进制表示法编码。

5.5K31
  • SQL函数 $JUSTIFY

    SQL函数 $JUSTIFY 在指定宽度内右对齐值的函数,可以选择舍入到指定的小数位数。...当decimal大于表达式中的小数位数时,$JUSTIFY的零位数。 $JUSTIFY也右对齐数字,使DecimalSeparator字符在一列数字中对齐。...与$JUSTIFY不同,ROUND允许指定舍入(默认值)或截断。 TRUNCATE截断指定的小数位数。 与ROUND不同的是,如果截断的结果是尾随的零,那么这些尾随的零将被保留。...然而,与$JUSTIFY不同的是,TRUNCATE不填零。 ROUND和TRUNCATE允许舍入(或截断)到小数分隔符的左边。 例如,ROUND(128.5,-1)返回130。...在$JUSTIFY接收到正则数表达式后,$JUSTIFY执行其操作,将该正则数舍入或置零到小数位数的十进制数,然后右对齐结果,如width中所述。 width 要对转换后的表达式右对齐的宽度。

    1.3K20

    BIT类型在SQL Server中的存储大小

    对于一般的INT、CHAR、tinyint等数据类型,他们占用的存储空间都是以Byte字节为单位的,但是BIT类型由于只有0和1或者说false和true,这种情况只需要一个Bit位就可以表示了,那么在SQL...Server中BIT类型到底占用了多少空间?...例如这样一个表: CREATE TABLE tt ( c1 INT PRIMARY KEY, c2 BIT NOT NULL, c3 CHAR(2) NOT NULL ) SQL Server在存储表中的数据时先是将表中的列按照原有顺序分为定长和变长...关于数据行的具体格式我就不在这里多说了,在《SQL Server 2005技术内幕 存储引擎》中有详细介绍。我们插入的数据从第5个字节开始,是01000000 016161。...SQL Server中按照列顺序存储,第一列和最后一列都是BIT数据类型列,不可以共用一个字节。 也就是说下面的表t1和表t2占用的空间是不同的,t1数据占用了7字节,t2数据占用了8字节。

    3.5K10

    为什么SQL语句Where 1=1 and在SQL Server中不影响性能

    Server操作XML的XPATH按节点属性筛选的时候,那转换成子查询一定会更快 2)如果使用了IN或者OR等时发现查询没有走索引,使用显式申明指定索引,这种情况查询分析器不走索引一定会有其原因,...而在SQL Server领域,T-SQL语句到查询结果返回需要经历一个完整的周期,如图1:     图1.T-SQL生命周期     因此,在关系数据库领域,SQL语句的写法只是一个抽象的逻辑,而不是像编程语言那样直接的实现...比如说访问一行数据,如果是编程语言实现,就需要指定连接数据的方式,打开数据,按某个方式取出数据,最后还要关闭连接,而在SQL Server中,T-SQL仅仅是定义如何去获取所需的数据,而无需考虑实现细节...在SQL Server中,T-SQL需要编译为执行计划才能去执行,在编译过程中,Query Optimizer需要考虑很多元数据,比如说表上的索引、数据分布、估计行数、一些参数配置、硬件环境等,在这其中...比如语句select * from table where a=1 and b=2 这个语句,SQL Server估计的行数会是:     a列的选择率*b列的选择率*表中采样的总行数     因此,当

    2K30

    在SQL Server2005中使用 .NET程序集

    昨天完成了一个最简单的在数据库中创建标量值函数,今天主要完成表值函数,存储过程和用户定义类型在和.NET结合下的使用方法. 1,表值函数 所谓表值函数就是说这个函数返回的结果是一个Table,而不是单个的值...在.NET 中创建这样的函数,返回的结果是一个IEnumerable接口.这个接口非常灵活,所有.NET数组集合等都是实现了该接口的.下面我们举一个简单的例子来说明....在VS2005中创建一个类Student,这个就是我们要返回的表的内容,类下面有属性int Age,string sName,DateTime Birthday,int SID; 然后在另外一个类UserFunction...这儿需要说明一下就是数据库中的类型和.NET中的类型的对应问题.int,datetime就不说了,主要是.NET中的string,在数据库中没有string类型,在FillRow中指出了类型SqlString...数据库事例代码中有相关内容,参见: \Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\UserDefinedDataType

    1.6K10

    MySQL数据类型DECIMAL用法

    amount DECIMAL(6,2); 在此示例中,amount列最多可以存储6位数字,小数位数为2位; 因此,amount列的范围是从-9999.99到9999.99。...如果要设计一个处理货币数据的数据库,则可参考以下语法 – amount DECIMAL(19,2); 但是,如果您要遵守公认会计原则(GAAP)规则,则货币栏必须至少包含4位小数,以确保舍入值不超过$0.01...SELECT * from test_order 查询结果: 如上所见,在输出值中填充了许多零。...,则四舍五入后直接截断多出的小数位。...存储数值时,小数位不足会自动补0,首位数字为0自动忽略。 小数位超出会截断,产生告警,并按四舍五入处理。 使用DECIMAL字段时,建议M,D参数手动指定,并按需分配。

    3.5K40

    Transact-SQL基础

    Transact-SQL Transact-SQL(又称 T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 实现,与 Oracle...的 PL/SQL 性质相近(不只是实现 ANSI SQL,也为自身数据库系统的特性提供实现支持),在 Microsoft SQL Server 和 Sybase Adaptive Server 中仍然被使用为核心的查询语言...SQL Server 不执行注释。 保留关键字 保留下来供 SQL Server 使用的词,不应用作数据库中的对象名。...在 SQL Server 中,某些位于标识符开头位置的符号具有特殊意义。以 at 符号开头的常规标识符始终表示局部变量或参数,并且不能用作任何其他类型的对象的名称。...IEEE 754 规范提供四种舍入模式:舍入到最近、向上舍入、向下舍入以及舍入到零。Microsoft SQL Server 使用向上舍入。所有的数值都必须精确到确定的精度,但会产生微小的浮点值差异。

    3.4K20

    Oracle number类型的语法和用法

    Oracle number类型的语法和用法 摘要:先根据精度值,对number类型的数据从左边第一个非零数字开始数精度值个位数,之后的位数截断不要(要四舍五入吗),再根据小数位置值,对number类型的数据右边的低位进行四舍五入...小数位置(scale) 当s(scale)为正数时,Oracle就对小数点右边的s个数字进行舍入。精确到小数点右边s位,并四舍五入。...例如,定义为NUMBER的列会存储浮点数(有小数),而NUMBER(38)只存储整数数据(没有小数),因为在第二种情况下小数位数默认为0....Oracle NUMBER类型是一种软件数据类型,在Oracle软件本身中实现。我们不能使用固有硬件操作将两个NUMBER类型相加,这要在软件中模拟。不过,浮点数没有这种实现。...类型如果不指定长度和小数点精度默认是多长 在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在1.0 * 10(-130) —— 9.9…9 * 10(125) {38

    2.2K20

    在SQL Server2016中创建管家婆软件账套

    管家婆软件辉煌版本从13.3开始可以支持sql2016数据库和sql2012数据库,登录配置以及创建账套可以参考下面的说明,如果是主机服务器是部署在本地电脑的,目前还是建议使用下sql2000或者是sql2008r2...软件登录配置: 数据库以sql2016 实例名数据库(实例名称:SQL2016)为例,软件版本以 辉煌二top13.31版本为例,电脑右下角找到管家婆服务器——右键——设置数据库连接参数,服务器名称输入为...单独复制一份到其他的盘符保留备份【此步骤非常重要需要备份好Grasp92文件】,登录访问2008r2数据库(SQL Server Management Studio)选择数据库——右键——还原数据库。...常规对应的选项中,目标数据库可以手动新建为Grasp92,还原的源选择为:源设备,指定备份为软件安装目录下面data文件夹下面的Grasp92,文件类型:所有文件* 才能选择到。...注意: 1.用于还原数据的Grasp92文件需要从没有创建过账套的安装目录下面去拷贝使用; 2.还原Grasp92数据库步骤需要在2008r2数据库里面操作处理,不能在sql2000中操作, 3.在2012

    4.1K80

    SQL Server2012在程序开发中实用的一些新特性

    SQL Server 2012已经发布一段时间了,最近在新的机器上安装了最新的SQL Server 2012 SP1,体检下感觉良好。...这个对于Oracle用户来说是最熟悉不过的数据库对象了,现在在SQL Server中终于也看到了类似的对象,只是在使用的语法上有一点点不一样。...以前在SQL Server中分页,最早是用top或者临时表,后来出现了ROW_NUMBER函数实现分页,现在最新的SQL2012可以在order by子句后跟offset和fetch来分页,感觉有点像是...现在的FORMAT函数相当于C#中的String.Format函数,在第二个参数中可以想要输出的格式。...没有default值,使用case when的时候,如果不匹配还有个else值可以显示,而使用CHOOSE后如果没有匹配的,那么就是NULL值。

    1.9K20
    领券