SQL Server中怎样实现格式转换函数
发布时间:2024-01-01 11:44:17 所属栏目:MsSql教程 来源:DaWei
导读: 这篇文章给大家分享的是“SQL Server中怎样实现格式转换函数,SQL语句是什么”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下
这篇文章给大家分享的是“SQL Server中怎样实现格式转换函数,SQL语句是什么”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。 CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。 CAST是ANSI兼容的,推荐使用CONVERT。 一、语法 CONVERT (data_type [ ( length ) ] , expression [ , style ]) CAST (expression AS data_type [ (length ) ]) data_type:目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。 length:nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 style: 日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型); 数字格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。 二、示例 SELECT 'AB' + 1 --此语句报错,在将 varchar 值 'AB' 转换成数据类型 int 时失败。 SELECT 'AB' + CONVERT(varchar,1) --输出 AB1 SELECT CONVERT(decimal(10,5), 12.3) --输出12.30000 SELECT 'AB' + CAST(1 AS varchar) --输出 AB1 CAST和CONVERT都能转换日期: SELECT CONVERT(DateTime,'2011-07-11') --输出 2011-07-11 00:00:00.000 SELECT CAST('2011-07-11' AS DateTime) --输出 2011-07-11 00:00:00.000 CONVERT有更多的样式可选: SELECT CONVERT(varchar,GETDATE(),5) --输出 01-07-13 SELECT CONVERT(varchar,GETDATE(),111) --输出 2013/07/01 SELECT CONVERT(varchar,GETDATE(),1) --输出 07/01/13 SELECT CAST(GETDATE() AS varchar) --输出 07 1 2013 9:56PM 三、转化为日期和时间字符串样式 SELECT CONVERT(varchar,GETDATE(),102) --输出 2020.11.24 SELECT CONVERT(varchar,GETDATE(),111) --输出 2020/11/24 SELECT CONVERT(varchar,GETDATE(),120) --输出 2020-11-24 09:29:55 SELECT CONVERT(varchar,GETDATE(),108) --输出 09:29:55 在表中,左侧的两列表示将datetime或smalldatetime转换为字符数据的style值。给style值加 100,可获得包括世纪数位的四位年份 (yyyy)。 * 默认值(style0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。 四、转化为XML 对于 xml 表达式,style 可能具有下表显示的值之一 。 其他值作为 0 进行处理。 0 (默认值):使用默认的分析行为,即放弃无用的空格,且不允许使用内部 DTD 子集。 注意: 转换为 xml 数据类型时,SQL Server 的无用空格处理方式不同于 XML 1.0。 有关详细信息,请参阅创建 XML 数据的实例。 1:保留无用空格。 此样式设置将默认 xml:space 处理设置为匹配 xml:space="preserve" 的行为 。 2:启用有限的内部 DTD 子集处理。 如果启用,则服务器可使用内部 DTD 子集提供的以下信息来执行非验证分析操作。 - 应用属性的默认值 - 解析并展开内部实体引用 - 检查 DTD 内容模型来确定语法的正确性 分析器忽略外部 DTD 子集。 此外,它不会评估 XML 声明来查看 standalone 属性具有 yes 值还是 no 值 。 相反,它将 XML 实例解析为独立文档。 3:保留无用空格,并启用有限的内部 DTD 子集处理。 示例 说明如何通过 XML 数据类型和列 (SQL Server) 使用 CONVERT 将数据转换为类型化的 XML。 1、此示例将包含空格、文本和标记的字符串转换为类型化的 XML,并删除所有无用空格(节点之间的边界空格): SELECT CONVERT(XML, '<root><child/></root>') 2、此示例将包含空格、文本和标记的类似字符串转换为类型化的 XML,并保留无用空格(节点之间的边界空格): SELECT CONVERT(XML, '<root> <child/> </root>', 1) 3、此示例将包含空格、文本和标记的字符串转换为类型化的 XML: SELECT CAST('<Name><FName>Carol</FName><LName>Elliot</LName></Name>' AS XML) 有关更多示例,请参阅创建 XML 数据的实例。 “SQL Server中怎样实现格式转换函数,SQL语句是什么”的内容就介绍到这里了,感谢大家的阅读。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐