SQL Server格式转换函数Cast、Convert介绍

  CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。

  CAST是ANSI兼容的,推荐使用CONVERT。

  一、语法

  CONVERT (data_type [ ( length ) ] , expression [ , style ])

  CAST (expression AS data_type [ (length ) ])

  二、示例

  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 进行处理。

  示例

  说明如何通过 XML 数据类型和列 (SQL Server) 使用 CONVERT 将数据转换为类型化的 XML。

  1、此示例将包含空格、文本和标记的字符串转换为类型化的 XML,并删除所有无用空格(节点之间的边界空格):

  SELECT CONVERT(XML, '')

  2、此示例将包含空格、文本和标记的类似字符串转换为类型化的 XML,并保留无用空格(节点之间的边界空格):

  SELECT CONVERT(XML, ' ', 1)

  3、此示例将包含空格、文本和标记的字符串转换为类型化的 XML:

  SELECT CAST('CarolElliot' AS XML)

  有关更多示例,请参阅创建 XML 数据的实例。

  到此这篇关于SQL Server格式转换函数Cast、Convert的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  您可能感兴趣的文章: