如何在 SQL Server 2012 中使用 TRUNC 函数,因为我得到 'TRUNC' 不是一个公认的内置函数名称。'?

Posted

技术标签:

【中文标题】如何在 SQL Server 2012 中使用 TRUNC 函数,因为我得到 \'TRUNC\' 不是一个公认的内置函数名称。\'?【英文标题】:How to use TRUNC function in SQL server 2012, as am getting 'TRUNC' is not a recognized built-in function name.'?如何在 SQL Server 2012 中使用 TRUNC 函数,因为我得到 'TRUNC' 不是一个公认的内置函数名称。'? 【发布时间】:2013-06-24 19:03:57 【问题描述】:

如何在 SQL Server 2012 中使用 TRUNC 函数,因为我收到错误:

'TRUNC' 不是可识别的内置函数名。'

当我执行语句时

SELECT TRUNC(30.95, 1)

在 SQL Server 2012 中

http://msdn.microsoft.com/en-us/library/ee634907.aspx

【问题讨论】:

Truncate (not round) decimal places in SQL Server的可能重复 但是,我的问题是,我可以在 SQL Server 中使用“TRUNC”吗?为什么我将其视为无法识别的内置功能?根据下面的链接,我应该能够执行 SELECT TRUNC(30.95,1) msdn.microsoft.com/en-us/library/ee634907.aspx 【参考方案1】:

它是 DAX 函数,而不是内置 SQL 函数。看起来这些将在 Excel 中使用。

http://technet.microsoft.com/en-us/library/gg399181.aspx

SQL Server 2012 的内置函数在这里:

http://msdn.microsoft.com/en-us/library/ms177516.aspx

【讨论】:

【参考方案2】:
ROUND ( 30.95 , 1 , 1 )

当第三个参数 != 0 它截断而不是四舍五入

http://msdn.microsoft.com/en-us/library/ms175003(SQL.90).aspx

感谢https://***.com/a/44093/44743

【讨论】:

但是,我的问题是,我可以在 SQL Server 中使用“TRUNC”吗?为什么我将其视为无法识别的内置功能?根据下面的链接,我应该能够执行 SELECT TRUNC(30.95,1) msdn.microsoft.com/en-us/library/ee634907.aspx 第三个参数是 sql 2016 独有的功能。此问题适用于 sql 2012,因此 round 函数不会截断它。 @Kevbo:这就是文档所说的,但我面前有一个工作的 SQL 2014 实例也能理解它。我认为旧版本实际上也支持它。事实上,这个答案可以追溯到 2013 年,因此支持似乎至少可以追溯到 2012 年。

以上是关于如何在 SQL Server 2012 中使用 TRUNC 函数,因为我得到 'TRUNC' 不是一个公认的内置函数名称。'?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决sql server 2012 评估期已过

SQL Server2012 T-SQL对分页的增强尝试

以高可用性恢复 SQL Server 2012 数据库

利用T-SQL语句快速清理ZBLOG程序的SQL SERVER2012数据库内容

读书笔记利用T-SQL语句快速清理ZBLOG程序的SQL SERVER2012数据库内容

将 SQL Server T-SQL 转换为 SQL