相关文章推荐
性感的人字拖  ·  WPF学习系列014: 2.8.1 ...·  9 月前    · 
首页 > 数据库 > MsSql > SQL Server格式转换函数

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

作者:springsnow

这篇文章介绍了SQL Server中的格式转换函数Cast、Convert,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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格式转换函数Cast、Convert的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • SQLServer RANK() 排名函数的使用
    SQLServer RANK() 排名函数的使用
    2022-03-03
  • sqlserver连接错误之SQL评估期已过的问题解决
    sqlserver连接错误之SQL评估期已过的问题解决
    2022-03-03
  • SQL Server的存储过程详解
    SQL Server的存储过程详解
    2022-01-01
  • SQL窗口函数之聚合窗口函数的使用(count,max,min,sum)
    SQL窗口函数之聚合窗口函数的使用(count,max,min,sum)
    2022-04-04
  • SQL实现查询某字段的值为空的记录
    SQL实现查询某字段的值为空的记录
    2022-04-04
  • 使用SQL语句实现查询排序,顺序和倒序
    使用SQL语句实现查询排序,顺序和倒序
    2022-04-04
  • SQL Server格式转换函数Cast、Convert介绍
    SQL Server格式转换函数Cast、Convert介绍
    2022-04-04
  • SQL Server中分区表的用法
    SQL Server中分区表的用法
    2022-04-04
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号