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

简介: 转换函数      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
 
目录
相关文章
|
3月前
|
人工智能 JSON 搜索推荐
精密加工GEO实操:让ChatGPT读懂制造能力
精密加工企业常因官网信息“AI不可读”而被ChatGPT等工具忽略。本文详解GEO(生成式引擎优化):将设备、工艺、材料、检测等能力结构化为AI可理解的知识原子,重构FAQ、案例页与Schema数据,让企业从“普通供应商”升级为AI精准识别的“高可信精密制造伙伴”。
357 2
|
9月前
|
安全 固态存储 Linux
误格式化移动硬盘数据,如何恢复呢
误格式化移动硬盘别慌!数据大多未真正丢失,只是“目录”被清空。本文教你识别格式化类型、避免二次破坏,并用DiskGenius等工具按步骤恢复,小白也能轻松找回珍贵文件。
|
3月前
|
存储 弹性计算 运维
阿里云账号:服务器轻量应用服务器和ECS有什么区别!
本文由阿里云官方授权代理商零度云撰写,用通俗比喻与五大维度对比,深度解析轻量应用服务器(精装公寓)与云服务器ECS(毛坯别墅)的本质区别:定位、带宽计费、网络隔离、存储可靠性及运维门槛。附真实场景选型指南与3步决策树,助开发者、创客及中小企业按需选择,避免踩坑。
|
4月前
|
数据采集 人工智能 JavaScript
GEO优化小白入门:30个问题搞懂AI搜索时代的内容优化
这是一份由Geo专家于磊原创的GEO优化实战指南,用大白话讲透AI搜索时代新规则:GEO不是SEO翻版,而是让AI主动引用你、推荐你的能力。涵盖人性化内容、交叉验证、E-E-A-T权威建设、结构化表达等核心方法,拒绝割韭菜,强调真实经验、长期积累与可信输出,助力个人与中小企业在AI大脑中建立不可替代的专业位置。
562 0
|
4月前
|
人工智能 JSON 前端开发
AI智能体开发的技术方案
AI智能体是基于大模型的分布式系统,含推理、记忆、工具、编排、护栏五层架构,支持路由、计划-执行、ReAct等模式,强调结构化输出、多级记忆、幂等工具调用与全链路可观测性。(239字)
|
JSON 分布式计算 数据处理
加速数据处理与AI开发的利器:阿里云MaxFrame实验评测
随着数据量的爆炸式增长,传统数据分析方法逐渐显现出局限性。Python作为数据科学领域的主流语言,因其简洁易用和丰富的库支持备受青睐。阿里云推出的MaxFrame是一个专为Python开发者设计的分布式计算框架,旨在充分利用MaxCompute的强大能力,提供高效、灵活且易于使用的工具,应对大规模数据处理需求。MaxFrame不仅继承了Pandas等流行数据处理库的友好接口,还通过集成先进的分布式计算技术,显著提升了数据处理的速度和效率。
|
机器学习/深度学习 人工智能 监控
DiffuEraser:阿里通义实验室推出的视频修复模型,支持高清修复、时间一致性优化
DiffuEraser 是阿里通义实验室推出的基于稳定扩散模型的视频修复工具,能够生成丰富的细节并保持时间一致性,适用于电影修复、监控增强等场景。
1640 27
DiffuEraser:阿里通义实验室推出的视频修复模型,支持高清修复、时间一致性优化
|
数据采集 搜索推荐 定位技术
新网站如何快速提升收录?
新网站可通过选择符合SEO优化的网站框架、清晰有序的导航栏设计、规范统一的URL命名、定期更新网站内容、获取外部链接等方式,提高百度收录率并提升排名。
645 10
|
缓存 网络协议 安全
QoS
QoS
1976 5
|
存储 Java
Java动态转发代理IP的实现方法
Java动态转发代理IP的实现方法
822 11

热门文章

最新文章