SQL SERVER2012 新增的14个内置函数

	--PARSE
	SELECT PARSE('WEDNESDAY,28 MARCH 2012' AS DATETIME2 USING'zh-CN') AS Result,
	       PARSE('28 MARCH 2012' AS DATETIME2 USING'zh-CN') AS Result,
		   PARSE('€345,98' AS money USING 'de-DE') AS Result
	--TRY_CONVERT
	SELECT 
		CASE WHEN TRY_CONVERT(float, 'test') IS NULL 
		THEN 'Cast failed'
		ELSE 'Cast succeeded'
		END AS Result;

	SET DATEFORMAT dmy;
	SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;
	--SELECT TRY_CONVERT(xml, 4) AS Result;--明确不允许转换时 TRY_CONVERT 返回错误

	--TRY_PARSE
	SELECT PARSE('WEDNESDAY' AS DATETIME2 USING'zh-CN') AS Result
	SELECT TRY_PARSE('WEDNESDAY' AS DATETIME2 USING'zh-CN') AS Result

	--DATEFROMPARTS-DATEFROMPARTS 返回一个 date 值,日期部分设置为指定的年、月和日,而时间部分设置为默认值
	SELECT DATEFROMPARTS ( 2010, 12, 31 ) AS Result;
	--DATETIME2FROMPARTS

	SELECT DATETIME2FROMPARTS ( 2010, 12, 31, 23, 59, 59, 0, 0 ) AS Result;
	--DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )
	--如果 fractions 的值为 5、precision 的值为 1,则 fractions 的值表示 5/10 秒
	--如果 fractions 的值为 50、precision 的值为 2,则 fractions 的值表示 50/100 秒
	--如果 fractions 的值为 500、precision 的值为 3,则 fractions 的值表示 500/1000 秒
	SELECT DATETIME2FROMPARTS ( 2011, 8, 15, 14, 23, 44, 5, 1 );
	SELECT DATETIME2FROMPARTS ( 2011, 8, 15, 14, 23, 44, 50, 2 );
	SELECT DATETIME2FROMPARTS ( 2011, 8, 15, 14, 23, 44, 500, 3 );
	--DATETIMEFROMPARTS
	SELECT DATETIMEFROMPARTS ( 2010, 12, 31, 23, 59, 59, 0 ) AS Result;
	--DATETIMEOFFSETFROMPARTS
	SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;
	SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );
	SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );
	SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );
	--SMALLDATETIMEFROMPARTS-为指定的日期和时间返回 smalldatetime 值
	SELECT SMALLDATETIMEFROMPARTS ( 2010, 12, 31, 23, 59 ) AS Result
	--TIMEFROMPARTS-对指定的时间返回 time 值(具有指定精度)
	SELECT TIMEFROMPARTS ( 23, 59, 59, 0, 0 ) AS Result;
	SELECT TIMEFROMPARTS ( 14, 23, 44, 5, 1 )
	SELECT TIMEFROMPARTS ( 14, 23, 44, 50, 2 );
	SELECT TIMEFROMPARTS ( 14, 23, 44, 500, 3 );

	--EOMONTH-返回包含指定日期的月份的最后一天(具有可选偏移量)
	DECLARE @date DATETIME
	SET @date = GETDATE()
	SELECT EOMONTH ( @date ) AS 'This Month'
	SELECT EOMONTH ( @date, 1 ) AS 'Next Month'
	SELECT EOMONTH ( @date, -1 ) AS 'Last Month'

	--CHOOSE-从值列表中返回指定索引处的项
	SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result

	--IIF
	DECLARE @a int = 45;
	DECLARE @b int = 40;
	SELECT IIF ( @a > @b, 'TRUE', 'FALSE' ) AS Result;
	--CASE 说明中至少有一个结果表达式必须为 NULL 常量之外的表达式
	--SELECT IIF ( 45 > 30, NULL, NULL ) AS Result;
	DECLARE @P INT = NULL;
	DECLARE @S INT = NULL;
	SELECT IIF ( 45 > 30, @p, @s ) AS Result;

	--CONCAT-返回作为串联两个或更多字符串值的结果的字符串
	SELECT CONCAT ( 'Happy ', 'Birthday ', 11, '/', '25' ) AS Result;
	SELECT CONCAT ( 'Happy ', 'Birthday ' ) AS Result;
	--FORMAT-返回以指定的格式和可选的区域性格式化的值
	DECLARE @d DATETIME = '01/01/2011';
	SELECT FORMAT ( @d, 'd', 'en-US' ) AS Result;
	SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS Result

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值