SQL Server 2012 新特性:新增和修改函数

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 转换函数      1.PARSE      Parse是把字符串类型转化为想要的类型,看看和convert和cast的区别         SELECT PARSE ('2.111111' AS float ),CAST ('2.

转换函数

     1.PARSE
     Parse是把字符串类型转化为想要的类型,看看和convert和cast的区别
     
 
SELECT  PARSE  ( '2.111111'  AS  float  ), CAST  ( '2.111111111111'  AS  FLOAT )
---------------------- ----------------------
2.111111               2.111111111111
 
( 1  row  ( s  )  affected  )
 
SELECT  PARSE  ( '19010101'  AS  DATETIME  ), CAST  ( '19010101'  AS  DATETIME )
 
Msg 9819 ,  Level  16 ,  State  1 ,  Line 63
Error converting string  value  '19010101'  into  data  type  datetime  using  culture  '' .
 
SELECT  PARSE  ( '1901-01-01'  AS  DATETIME  ), CAST  ( '1901-01-01'  AS  DATETIME )
 
----------------------- -----------------------
1901 - 01 - 01 00 : 00 : 00.000 1901 - 01 - 01 00 : 00 : 00.000
 
( 1  row  ( s  )  affected  )      
 
新功能转日期的时候格式一定要注意,不然转不过去,没有cast好用。
 
     2.TRY_CONVERT
     TRY_CONVERT,如果转化成功返回值,转化不成功返回null,比 convert转化不成功报错,编程更加简单和方便些。
     比如:
         
   SELECT   CASE WHEN TRY_CONVERT(float, 'test') IS NULL 
    THEN 'Cast failed'
    ELSE 'Cast succeeded'
END AS Result;
GO
     
     3.TRY_PASSE
     和上面的类似,只是不成功返回null。
SELECT  TRY_PARSE  ( '19010101'  AS  DATETIME  ), CAST  ( '19010101'  AS  DATETIME )
 
----------------------- -----------------------
NULL                     1901  - 01  - 01 00  : 00  : 00.000      
          
日期和时间函数
     1.DATEFROMPARTS
     通过传入年月日参数拼出一个日期,以前使用字符串拼接然后再转化成日期
SELECT
DATEFROMPARTS  (  2010 ,  12 ,  31  ), CAST  ( '20101231'  AS  date )
---------- ----------
2010 - 12 - 31 2010 - 12 - 31
     
     2.DATETIME2FROMPARTS
     和上面类似,但是多了时分秒和精度。
SELECT  DATETIME2FROMPARTS  (  2011 ,  8 ,  15 ,  14 ,  23 ,  44 ,  5 ,  1  ),  DATETIME2FROMPARTS  (  2011 ,  8 ,  15 ,  14 ,  23 ,  44 ,  50 ,  2  ),  DATETIME2FROMPARTS  (  2011 ,  8 ,  15 ,  14 ,  23 ,  44 ,  500 ,  3  );
GO
--------------------------- --------------------------- ---------------------------
2011 - 08 - 15 14 : 23 : 44.5       2011  - 08  - 15 14  : 23  : 44.50      2011  - 08  - 15 14  : 23  : 44.500
     3.DATATIMEFROMPARTS     
     和上面基本没有区别,只是没有了精度
SELECT  DATETIMEFROMPARTS  (  2010 ,  12 ,  31 ,  23 ,  59 ,  59 ,  0  )  ;
-----------------------
2010 - 12 - 31 23 : 59 : 59.000
     
     4.DATATIMEOFFSETFROMPARTS
     相比上面多了时区设置。返回datatimeoffset类型
     
     5.EOMONTH
     计算月的最后一天,有了这个就很方便,在编写月报或者什么的时候。
DECLARE  @date  DATETIME  =  GETDATE  ();
SELECT  EOMONTH  (  @date  )  AS  'This Month' ,  EOMONTH  (  @date ,  1  )  AS  'Next Month' , EOMONTH  (  @date  ,  - 1  )  AS  'Last Month' ;
GO
This  Month  Next  Month  Last  Month
---------- ---------- ----------
2016 - 08 - 31 2016 - 09 - 30 2016 - 07 - 31
     6.SMALLDATATIMEFROMPARTS
     SMALLDATATIME类型在sql server中精度到分钟位置。和上面的函数一样的效果。
 
逻辑函数
     1.CHOOSE
     返回列表中的索引值。如果不能传入参数,或者不能解析逗号分隔字符串,所实话没啥用有点鸡肋
SELECT  CHOOSE  (  3 ,  'Manager' ,  'Director'  ,  'Developer' ,  'Tester'  )
---------
Developer
     
     2.IIF
     根据表达式返回值,返回某个值。应该是case when 的简化版
     
SELECT IIF ( (SELECT COUNT( 1) FROM dbo. t1)>= 1, (SELECT COUNT (1 ) FROM dbo .t1 ), 0 )
-----------
1
 
字符串函数
     1.CONCAT
     用处和mysql的concat一样用来连接字符串。
SELECT  CONCAT  (  'Happy ' ,  'Birthday '  ,  11  ,  '/' ,  '25'  )
------------------------------
Happy Birthday 11 / 25
     
     2.FORMAT
     用来返回指定区域的的文本,比如时间。
DECLARE  @d  DATETIME  =  '10/01/2011'  ;
SELECT  FORMAT  (  @d  ,   'D' ,  'en-US'  )  AS  'US English Result'
US English Result
---------------------------
Saturday ,  October 1  ,  2011
 
目录
相关文章
|
自然语言处理 数据格式
【DSW Gallery】基于ModelScope的中文GPT-3模型(1.3B)的微调训练
本文基于ModelScope,以GPT-3(1.3B)为例介绍如何使用ModelScope-GPT3进行续写训练与输入输出形式的训练,训练方式不需要额外指定,训练数据集仅包含 src_txt 时会进行续写训练,同时包含 src_txt 和 tgt_txt 时会进行输入输出形式的训练。
【DSW Gallery】基于ModelScope的中文GPT-3模型(1.3B)的微调训练
|
6月前
|
数据处理
CUT&Tag 分析教程 | 完结撒花
CUT&Tag 分析教程 | 完结撒花
CUT&Tag 分析教程 | 完结撒花
|
7月前
|
存储 算法 C++
Windows共享文件:探秘C++实现的B树索引算法奇境
在数字化时代,Windows共享文件的高效管理至关重要。B树算法以其自平衡多路搜索特性,在文件索引与存储优化中表现出色。本文探讨B树在Windows共享文件中的应用,通过C++实现具体代码,展示其构建文件索引、优化数据存储的能力,提升文件检索效率。B树通过减少磁盘I/O操作,确保查询高效,为企业和个人提供流畅的文件共享体验。
|
9月前
|
机器学习/深度学习 自然语言处理 安全
DeepSeek-R1 体验评测报告:智能推理新高度
DeepSeek-R1 体验评测报告:智能推理新高度
706 7
DeepSeek-R1 体验评测报告:智能推理新高度
|
存储 缓存 算法
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
289 2
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
392 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
算法 搜索推荐 Java
基于SpringBoot+协同过滤算法的家政服务平台设计和实现(源码+LW+调试文档+讲解等)
基于SpringBoot+协同过滤算法的家政服务平台设计和实现(源码+LW+调试文档+讲解等)
|
存储 前端开发 JavaScript
使用JavaScript实现动态生成并管理购物车的深入解析
使用JavaScript实现动态生成并管理购物车的深入解析
|
JavaScript 前端开发
Vue 安装 less-loader 报错 unable to resolve dependency tree
Vue 安装 less-loader 报错 unable to resolve dependency tree
520 0
|
存储 NoSQL 关系型数据库
数据湖的不可能三角
数据湖有三个重要满足点,既要保持数据的原样(全量信息入湖),也要可以方便计算使用(数据变现),还希望建设成本低廉(显然的)。但是,当前的技术方案无法同时满足这三点。
数据湖的不可能三角

热门文章

最新文章