--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
SQL SERVER2012 新增的14个内置函数
最新推荐文章于 2025-03-10 15:16:09 发布