是否有任何用户定义/自定义的 FORMAT 和 TRY_CAST?
Posted
技术标签:
【中文标题】是否有任何用户定义/自定义的 FORMAT 和 TRY_CAST?【英文标题】:Is there any user defined / customized FORMAT and TRY_CAST? 【发布时间】:2019-05-18 19:34:06 【问题描述】:我正在使用 SQL 存储过程。低于 FORMAT 和 TRY_CAST 得到这个错误。
'TRY_CAST' 不是可识别的内置函数名称。
SELECT FORMAT(TRY_CAST(MYDATE AS INT),'00/00/0000')
所以我想使用用户定义的 FORMAT 和 TRY_CAST 函数。但是对这些功能一无所知。是否有任何现有的用户定义函数而不是 FORMAT 和 TRY_CAST。
编辑(来自评论):
我正在使用“Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 版权所有 (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.2 (Build 9200) : ) (Hypervisor) ' 这个版本。我想将 'ddmmyyyy' 格式转换为 'dd/mm/yyyy' 这个。我可以只使用字符串操作来完成。但我想要一些像样的代码。所以我试试这个 FORMAT 和 TRY_CAST。
【问题讨论】:
您使用的是什么版本的 SQL Server?您期望将日期作为 int 得到什么?样本数据和期望的结果可能是更好的问题格式。 Docs: “适用于:SQL Server(从 2012 年开始)”。你可能在2012年之前?您为什么要询问这些功能的用户定义变体?你试过什么? 检查print @@version
的输出,很可能它会告诉你你的SQL Server早于2012年。
请停止对零研究问题的同情。
警告 - 没有人应该在这么晚的日期使用 2008 RTM。这是危险的过时和不受支持的。
【参考方案1】:
如果要将“ddmmyyyy格式转换为dd/mm/yyyy”,只需使用字符串函数即可:
select stuff(stuff(my_date, 5, '/'), 3, '/')
SQL Server 2008 不支持您要使用的函数。
【讨论】:
感谢 Gordon,它很漂亮而且很漂亮。为了避免语法错误,我几乎没有做任何更正。【参考方案2】:是否存在任何现有的用户定义函数而不是 FORMAT 和 TRY_CAST。
不,根据定义,您的 SQL Server 上没有现有的用户定义函数,直到您创建它们。这就是“用户定义”位的含义。
【讨论】:
以上是关于是否有任何用户定义/自定义的 FORMAT 和 TRY_CAST?的主要内容,如果未能解决你的问题,请参考以下文章
R语言用户自定义函数的语法结构编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)应用自定函数