Top5 functions sql2012
-
Upload
manas-dash -
Category
Technology
-
view
620 -
download
1
description
Transcript of Top5 functions sql2012
@simplymanas
Top 5 Built-in Functions (Transact-SQL)
Manas Ranjan Dash
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
SELECT GETDATE()
What is today’s date?
SELECT GETDATE()+1
What is tomorrow’s date?
Beginning of the month?
SELECT CAST (CAST (YEAR(GETDATE()) AS VARCHAR) + '-'+ CAST(MONTH(GETDATE()) AS VARCHAR) + '-'+ '01' AS DATE)
Beginning of the month?
SELECT CAST(CONCAT(YEAR(GETDATE()),'-',MONTH(GETDATE()),'-','01') AS DATE)
I am from SQL 2012
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
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
Beginning of the month?
SELECT CAST (CONCAT(
YEAR(GETDATE()),'-',MONTH(GETDATE()),'-','01'
)AS DATE)
SELECT DATEFROMPARTS (
YEAR(GETDATE()),MONTH(GETDATE()),1)
SQL SERVER
2012
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
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
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
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
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
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
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
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';
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 ()
Q & A
Best Reference: Books Online
http://msdn.microsoft.com/en-us/library/bb510741.aspx
Inspired by Vinod Kumar, Jacob Sebastian, Pinal
Dave