Top5 functions sql2012

20
@simplymanas Top 5 Built-in Functions (Transact-SQL) Manas Ranjan Dash

description

I was lucky enough to get a chance to present on the first "SQLBangUG" meet. I really enjoyed the 30 minutes and thanks to the UG lead and members for their encouragement. Many Thanks to Jacob, Vinod & Pinal.

Transcript of Top5 functions sql2012

Page 1: Top5 functions sql2012

@simplymanas

Top 5 Built-in Functions (Transact-SQL)

Manas Ranjan Dash

Page 2: Top5 functions sql2012

Programmability Enhancements (Database Engine)

select (my) top 5 * from SQL_BuiltIn_Functions

Agenda

**All the function described in this session are purely related to SQL2012. There is no resemblance with SQL2005 or SQL2008. Compatibility level 110

Page 3: Top5 functions sql2012

SELECT GETDATE()

What is today’s date?

SELECT GETDATE()+1

What is tomorrow’s date?

Page 4: Top5 functions sql2012

Beginning of the month?

SELECT CAST (CAST (YEAR(GETDATE()) AS VARCHAR) + '-'+ CAST(MONTH(GETDATE()) AS VARCHAR) + '-'+ '01' AS DATE)

Page 5: Top5 functions sql2012

Beginning of the month?

SELECT CAST(CONCAT(YEAR(GETDATE()),'-',MONTH(GETDATE()),'-','01') AS DATE)

I am from SQL 2012

Page 6: Top5 functions sql2012

SELECT FIRSTNAME +' ' +MIDDLENAME + ' ' +LASTNAME AS FULLNAME

FROM PERSON.PERSON

SELECT ISNULL(FIRSTNAME,'') +' ' +ISNULL(MIDDLENAME,'') + ' ' +ISNULL(LASTTNAME,'') AS FULLNAME

FROM PERSON.PERSON

SELECT CONCAT(

FIRSTNAME,' ',MIDDLENAME,' ',LASTNAME) AS FULLNAME

FROM PERSON.PERSON

Display Full NameSQL

SERVER 2012

Page 7: Top5 functions sql2012

CONCAT() Function

CONCAT ( string_value1, string_value2 [, string_valueN ] )

All arguments are implicitly converted to string types and then concatenated.

Null values are implicitly converted to an empty string.

If all the arguments are null, an empty string of type varchar(1) is returned.

TOP 1

BOL BACHCHAN

Page 8: Top5 functions sql2012

Beginning of the month?

SELECT CAST (CONCAT(

YEAR(GETDATE()),'-',MONTH(GETDATE()),'-','01'

)AS DATE)

SELECT DATEFROMPARTS (

YEAR(GETDATE()),MONTH(GETDATE()),1)

SQL SERVER

2012

Page 9: Top5 functions sql2012

DATEFROMPARTS() Function

DATEFROMPARTS ( year, month, day ) DATEFROMPARTS returns a date value with the

date portion set to the specified year, month and day.

TOP 2

BOL BACHCHAN

Page 10: Top5 functions sql2012

End of the month?

SELECT DATEADD(D,-1,DATEFROMPARTS(YEAR(GETDATE()),MONTH(GETDATE())+1,1))

SELECT DATEADD(D,-1,

DATEFROMPARTS(CASE WHEN MONTH(GETDATE())<12THEN YEAR(GETDATE())ELSE YEAR(GETDATE())+1END,CASE WHEN MONTH(GETDATE())=12 THEN 1ELSE MONTH(GETDATE())+1END,

1))

SELECT DATEADD(D,-1,DATEFROMPARTS(IIF(MONTH(GETDATE())<12,

YEAR(GETDATE()),YEAR(GETDATE()+1)),IIF(MONTH(GETDATE())=12,1, MONTH(GETDATE())+1),1)

)

SQL SERVER

2012DECEMBE

R

Page 11: Top5 functions sql2012

IIF() Function

IIF ( boolean_expression, true_value, false_value) IIF is translated into CASE IIF statements can also be nested only up to the

maximum level of 10 like CASE.

TOP 3

BOL BACHCHAN

Page 12: Top5 functions sql2012

SELECT DATEADD(D,-1,DATEFROMPARTS(IIF(MONTH(GETDATE())<12,

YEAR(GETDATE()),YEAR(GETDATE()+1)),IIF(MONTH(GETDATE())=12,1, MONTH(GETDATE())+1),1)

)

End of the month?

--THIS MONTH ENDSELECT EOMONTH(GETDATE())--NEXT MONTH ENDSELECT EOMONTH(GETDATE(),1)SELECT EOMONTH(GETDATE(),2)SELECT EOMONTH(GETDATE(),14)--PREVIOUS MONTH ENDSELECT EOMONTH(GETDATE(),-1)SELECT EOMONTH(GETDATE(),-2)SELECT EOMONTH(GETDATE(),-14)

SQL SERVER

2012

Page 13: Top5 functions sql2012

EOMONTH() Function

EOMONTH ( start_date [, month_to_add ] ) Even if you pass a string parameter you will get a

date return type as it does a implicit conversion.

DECLARE @date VARCHAR(255) SET @date = '12/1/2011' SELECT EOMONTH ( @date ) AS Result GO

TOP 4

BOL BACHCHAN

Page 14: Top5 functions sql2012

Lets Format a DateSELECT CONVERT(VARCHAR, GETDATE(), 101) --11/23/2012SELECT CONVERT(VARCHAR, GETDATE(), 102) --2012.11.23SELECT CONVERT(VARCHAR, GETDATE(), 103) --23/11/2012SELECT CONVERT(VARCHAR, GETDATE(), 104) --23.11.2012SELECT CONVERT(VARCHAR, GETDATE(), 105) --23-11-2012SELECT CONVERT(VARCHAR, GETDATE(), 108) --10:04:52

SELECT FORMAT( GETDATE(), 'yyyy-MM-dd HH:MM') --2012-11-23 10:11SELECT FORMAT( GETDATE(),' "First SQLUG Meet On" ddd dd"th" MMMM yyyy "at" HH:MM ')-- First SQLUG Meet On Fri 24th November 2012 at 10:11

SQL SERVER

2012

Page 15: Top5 functions sql2012

FORMAT() Function

FORMAT ( value, format [, culture ] )

Use the FORMAT function for locale-aware formatting of date/time and number values as strings. For general data type conversions, use CAST or CONVERT.

TOP 5

BOL BACHCHAN

Page 16: Top5 functions sql2012

CULTURE

You can use the SET LANGUAGE statement. Culture accepts any culture supported by the .NET

Framework as an argument; it is not limited to the languages explicitly supported

by SQL Server

DECLARE @d DATETIME = '01/01/2011';SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result' ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result' ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result' ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result';

Page 17: Top5 functions sql2012

NEWLY ADDED FUNCTIONS

Conversion functionsPARSE ()TRY_CONVERT ()TRY_PARSE ()Date and time functionsDATEFROMPARTS ()DATETIME2FROMPARTS ()DATETIMEFROMPARTS ()DATETIMEOFFSETFROMPARTS ()EOMONTH ()SMALLDATETIMEFROMPARTS ()TIMEFROMPARTS ()

The existing LOG (Transact-SQL) function now has an optional second base parameter. LOG ( float_expression [,

base ] )

Logical functionsCHOOSE ()IIF ()String functionsCONCAT ()FORMAT ()

Page 18: Top5 functions sql2012

Q & A

Best Reference: Books Online

http://msdn.microsoft.com/en-us/library/bb510741.aspx

Page 19: Top5 functions sql2012

[email protected]@simplymanas

Tell me how it w

as

Page 20: Top5 functions sql2012

Inspired by Vinod Kumar, Jacob Sebastian, Pinal

Dave