網站首頁 編程語言 正文
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
相關推薦
- 2022-07-03 Android使用ViewPager實現翻頁效果_Android
- 2022-12-06 Pthread并發編程之線程基本元素和狀態的剖析_C 語言
- 2021-12-10 Qt?QFile文件操作的具體使用_C 語言
- 2021-12-14 nginx.pid打開失敗以及失效的解決方案_nginx
- 2022-07-08 圖文詳解Nginx多種匹配方式_nginx
- 2022-12-23 Python中的文件輸入輸出問題_python
- 2023-02-10 docker容器間互相訪問(docker?bridge網絡)_docker
- 2022-06-25 Python中最強大的錯誤重試庫(tenacity庫)_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支