SQL Server格式转换函数Cast、Convert介绍
作者:springsnow 发布时间:2024-01-22 18:42:16
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 数据的实例。
来源:https://www.cnblogs.com/springsnow/p/9881041.html


猜你喜欢
- 我们知道了钢琴键盘的音高是其实是有规律的,如下频率翻倍,高一个八度国际基准音:440Hz,钢琴键盘上对应小字一组的la小字一组的la可以看下
- 注意:由于博文已经很多这方面的内容,这里不介绍安装vscode和anaconda的步骤,只讨论如下情况:已经安装了anaconda,也从官网
- 创建一个软件包(package)似乎已经足够简单了,也就是在文件目录下搜集一些模块,再加上一个__init__.py文件,对吧?我们很容易看
- 环境准备python3.6PyCharm 2017.1.3Windows环境框架搭建selenium3.6安装方法:pip install
- 先放关键代码:i = tf.train.range_input_producer(NUM_EXPOCHES, num_epochs=1, s
- win10,直接使用 pip install tesserocr 的命令如果输出如下错误提示:tesserocr.cpp(596): fat
- 概述concurrent.futures 是 3.2 中引入的新模块,它为异步执行可调用对象提供了高层接口。可以使用 ThreadPoolE
- Enum 是个类所以基本的类操作都可以用也就是我们可以添加自己的方法class Mood(Enum): FUNKY
- 本文实例讲述了Python实现分割文件及合并文件的方法。分享给大家供大家参考。具体如下:分割文件split.py如下:#!/usr/bin/
- 最早大家都没有给链接加title的习惯,后来因为w3c标准普及,又集体加上了title。从一个极端走到另个极端,于是出现很多怪异现象。两方面
- 双向链表一种更复杂的链表是“双向链表”或“双面链表”。每个节
- python与C的区别如下:1、语言类型不同。Python是一种动态类型语言,又是强类型语言。它们确定一个变量的类型是在您第一次给它赋值的时
- 首先创建一个csv文件,创建方式为新建一个文本文档,然后将这个文本文档重命名为test.csv再用Excel打开,添加内容内容如下:先来添加
- 在pandas中创建category类型数据的几种方法之详细攻略 T1、直接创建 category类型数据可知,在category
- 1分钟快速生成用于网页内容提取的xslt,具体内容如下1、项目背景在《Python即时网络爬虫项目说明》一文我们说过要做一个通用的网络爬虫,
- 外联接。外联接可以是左向外联接、右向外联接或完整外部联接。 在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定:LEFT J
- 装饰器这东西我看了一会儿才明白,在函数外面套了一层函数,感觉和java里的aop功能很像;写了2个装饰器日志的例子,第一个是不带参数的装饰器
- python中查找指定的字符串的方法如下:code#查询def selStr(): sStr1 = 'jsjtt.com
- FCKeditor至今已经到了2.3.1版本了,对于国内的WEB开发者来说,也基本上都已经“闻风知多少”了,很多人将其融放到自己的项目中,更
- 效果图如下:Demo演示地址:点击这里主要的JS代码如下:var tbody = document.querySelector('#