Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

c 


   
    c  
   Y
          
         Y
USE AdventureWorksY
SET LANGUAGE us_englishY
@@ Convert string to date using style (format) numbers @ sql dates formatY
@@ SQL convert text to date @ SQL convert string to date / datetimeY
SELECT convert(datetime,'15/03/18',3) @@ 2018@03@15 00:00:00.000Y
SELECT convert(datetime,'15.03.18',4) @@ 2018@03@15 00:00:00.000Y

@@ Convert datetime to text style (format) list @ sql time formatY


@@ SQL Server without century (YY) date styles (there are exceptions!)Y
@@ Generally adding 100 to style number results in century format CCYY / YYYYY
SELECT convert(varchar,getdate())
@@ Mar 15 2018 10:35AMY
SELECT convert(varchar,getdate(),0) @@ Mar 15 2018 10:35AMY
SELECT convert(varchar,getdate(),1) @@ 03/15/18Y
SELECT convert(varchar,getdate(),2) @@ 18.03.15Y
SELECT convert(varchar,getdate(),3) @@ 15/03/18Y
SELECT convert(varchar,getdate(),4) @@ 15.03.18Y
SELECT convert(varchar,getdate(),5) @@ 15@03@18Y
SELECT convert(varchar,getdate(),6) @@ 15 Mar 18Y
SELECT convert(varchar,getdate(),7) @@ Mar 15, 18Y
SELECT convert(varchar,getdate(),8) @@ 10:39:39Y
SELECT convert(varchar,getdate(),9) @@ Mar 15 2018 10:39:48:373AMY
SELECT convert(varchar,getdate(),10) @@ 03@15@18Y
SELECT convert(varchar,getdate(),11) @@ 18/03/15Y
SELECT convert(varchar,getdate(),15) @@ 180315Y
SELECT convert(varchar,getdate(),13) @@ 15 Mar 2018 10:41:07:590Y
SELECT convert(varchar,getdate(),14) @@ 10:41:25:903Y
SELECT convert(varchar,getdate(),20) @@ 2018@03@15 10:43:56Y
SELECT convert(varchar,getdate(),21) @@ 2018@03@15 10:44:04.950Y
SELECT convert(varchar,getdate(),22) @@ 03/15/18 10:44:50 AMY
SELECT convert(varchar,getdate(),23) @@ 2018@03@15Y
SELECT convert(varchar,getdate(),24) @@ 10:45:45Y
SELECT convert(varchar,getdate(),25) @@ 2018@03@15 10:46:11.263
@@ T@SQL with century (YYYY or CCYY) datetime styles (formats)Y
SELECT convert(varchar, getdate(), 100) @@ Oct 23 2016 10:22AM (or PM)
SELECT convert(varchar, getdate(), 101) @@ 10/23/2016Y
SELECT convert(varchar, getdate(), 102) @@ 2016.10.23Y
SELECT convert(varchar, getdate(), 103) @@ 23/10/2016Y
SELECT convert(varchar, getdate(), 104) @@ 23.10.2016Y
SELECT convert(varchar, getdate(), 105) @@ 23@10@2016Y
SELECT convert(varchar, getdate(), 106) @@ 23 Oct 2016Y
SELECT convert(varchar, getdate(), 107) @@ Oct 23, 2016Y
SELECT convert(varchar, getdate(), 108) @@ 09:10:34Y
SELECT convert(varchar, getdate(), 109) @@ Oct 23 2016 11:10:33:993AM (or PM)Y
SELECT convert(varchar, getdate(), 110) @@ 10@23@2016Y
SELECT convert(varchar, getdate(), 111) @@ 2016/10/23Y
SELECT convert(varchar, getdate(), 112) @@ 20161023Y

SELECT
SELECT
SELECT
SELECT
SELECT
GOY

convert(varchar,
convert(varchar,
convert(varchar,
convert(varchar,
convert(varchar,

getdate(),
getdate(),
getdate(),
getdate(),
getdate(),

113)
114)
120)
121)
126)

@@
@@
@@
@@
@@

23 Oct 2016 06:10:55:383Y


06:10:55:383(24h)Y
2016@10@23 06:10:55(24h)Y
2016@10@23 06:10:55.383Y
2016@10@23T06:10:55.383Y

@@ SQL cast string to datetime @ time part 0 @ sql hh mmY


@@ SQL Server cast string to DATE (SQL Server 2008 feature) @ sql yyyy mm ddY
SELECT [Date] =
CAST('20120228' AS date)
@@ 2012@02@28Y
SELECT [Datetime] = CAST('20120228' AS datetime)Y
@@ 2012@02@28
00:00:00.000Y
SELECT [Datetime] = CAST('20120228' AS smalldatetime)Y@@ 2012@02@28 00:00:00Y

YY

@@ SQL
@@ SQL
SELECT
SELECT

convert string to datetime @ time part 0Y


Server convert string to date @ sql times formatY
[Datetime] = CONVERT(datetime,'2010@02@28')Y
[Datetime] = CONVERT(smalldatetime,'2010@02@28')Y

SELECT [Datetime] = CAST('Mar 15, 2010' AS datetime)Y


SELECT [Datetime] = CAST('Mar 15, 2010' AS smalldatetime)Y

SELECT [Datetime] = CONVERT(datetime,'Mar 15, 2010')Y


SELECT [Datetime] = CONVERT(smalldatetime,'Mar 15, 2010')Y

SELECT [Datetime] = CAST('Mar 15, 2010 12:07:34.444' AS datetime)Y


SELECT [Datetime] = CAST('Mar 15, 2010 12:07:34.444' AS smalldatetime)Y

SELECT [Datetime] = CONVERT(datetime,'Mar 15, 2010 12:07:34.444')Y


SELECT [Datetime] = CONVERT(smalldatetime,'Mar 15, 2010 12:07:34.444')Y

SELECT [Datetime] = CAST('2010@02@28 12:07:34.444' AS datetime)Y


SELECT [Datetime] = CAST('2010@02@28 12:07:34.444' AS smalldatetime)Y

SELECT [Datetime] = CONVERT(datetime,'2010@02@28 12:07:34.444')Y


SELECT [Datetime] = CONVERT(smalldatetime,'2010@02@28 12:07:34.444')Y

@@ Double conversionY
SELECT [Datetime] = CAST(CAST(getdate() AS VARCHAR) AS datetime)Y
SELECT [Datetime] = CAST(CAST(getdate() AS VARCHAR) AS smalldatetime)Y

SELECT [Datetime] = CONVERT(datetime,convert(varchar,getdate()))Y


SELECT [Datetime] = CONVERT(smalldatetime,convert(varchar,getdate()))Y
@@@@@@@@@@@@Y

@@ MSSQL convert date string to datetime @ time is set to 00:00:00.000 or


12:00AMY
PRINT CONVERT(datetime,'07@10@2016',110)
@@ Jul 10 2016 12:00AMY
PRINT CONVERT(datetime,'2016/07/10',111)
@@ Jul 10 2016 12:00AMY
PRINT CONVERT(varchar,CONVERT(datetime,'20160710', 112),121)
Y
@@ 2016@07@10 00:00:00.000
Y
@@@@@@@@@@@@
Y

  !"#$%$&'c(c)*(+(c,!*-.
@@ Selected named date stylesY

DECLARE @DateTimeValue varchar(32)Y

@@ US@StyleY
@@ Convert string to datetime sqlY@ sql convert string to datetimeY
SELECT @DateTimeValue = '10/23/2016'Y
SELECT StringDate=@DateTimeValue,Y
[US@Style] = CONVERT(datetime, @DatetimeValue)Y

SELECT @DateTimeValue = '10/23/2016 23:01:05'Y


SELECT StringDate = @DateTimeValue,Y
[US@Style] = CONVERT(datetime, @DatetimeValue)Y

@@ UK@Style, British/FrenchY
SELECT @DateTimeValue = '23/10/16 23:01:05'Y
SELECT StringDate = @DateTimeValue,Y
[UK@Style] = CONVERT(datetime, @DatetimeValue, 3)Y

SELECT @DateTimeValue = '23/10/2016 04:01 PM'Y


SELECT StringDate = @DateTimeValue,Y
[UK@Style] = CONVERT(datetime, @DatetimeValue, 103)Y

@@ German@StyleY
SELECT @DateTimeValue = '23.10.16 23:01:05'Y
SELECT StringDate = @DateTimeValue,Y
[German@Style] = CONVERT(datetime, @DatetimeValue, 4)Y

Y
Y

SELECT @DateTimeValue = '23.10.2016 04:01 PM'Y


SELECT StringDate = @DateTimeValue,Y
[German@Style] = CONVERT(datetime, @DatetimeValue, 104)Y

Y
Y

@@ Double conversion to US@Style 107 with century: Oct 23, 2016Y


SET @DateTimeValue='10/23/16'Y
SELECT StringDate=@DateTimeValue,Y
[US@Style] = CONVERT(varchar, CONVERT(datetime, @DateTimeValue),107)Y

@@ SQL dateformat settingY


USE AdventureWorks2008;Y
SELECT convert(datetime,'14/05/08')Y
/* Msg 242, Level 16, State 3, Line 1Y
The conversion of a varchar data type
in an out@of@range value.Y
*/Y
SET DATEFORMAT ymdY
SELECT convert(datetime,'14/05/08')
@@ Setting DATEFORMAT to UK@StyleY
SET DATEFORMAT dmyY
SELECT convert(datetime,'20/05/14')
@@ Setting DATEFORMAT to US@StyleY
SET DATEFORMAT mdyY
SELECT convert(datetime,'05/20/14')
SELECT convert(datetime,'05/20/2014')
GOY

YY

@@@@@@@@@@@@Y

to a datetime data type resultedY

@@ 2014@05@08 00:00:00.000Y
@@ 2014@05@20 00:00:00.000Y
@@ 2014@05@20 00:00:00.000Y
@@ 2014@05@20 00:00:00.000Y

@@ SQL date & time eliminating dividing charactersY


@@@@@@@@@@@@Y
@@ MSSQL replace string functionY
@@ T@SQL string concatenate (+)Y
USE AdventureWorks2008;Y
SELECT replace(convert(VARCHAR(10),getdate(),102),'.','')Y
@@ 20120315Y
SELECT replace(convert(VARCHAR(10),getdate(),111),'/','')Y
@@ 20120315 Y
@@ SQL triple replaceY
SELECT replace(replace(replace(convert(VARCHAR(25),Y
getdate(),20),'@',''), ':',''),' ','')Y
@@ 20120529090427Y
@@ T@SQL concatenating from a date and a time conversionY
SELECT replace(convert(VARCHAR(10),getdate(),111),'/','') +Y
replace(convert(VARCHAR(8),getdate(),108),':','')Y
@@ 20120315085654Y

YY

@@@@@@@@@@@@Y
@@ Converting string dates from a tableY
@@@@@@@@@@@@Y

YY

@@ Create and populate a test table with a string dateY


USE tempdb;Y
SELECTY
DepartmentID,Y
LastUpdate=CONVERT(varchar,Y
dateadd(day, DepartmentID, ModifiedDate),100)Y
INTO DeptInfoY
FROM AdventureWorks.HumanResources.DepartmentY

SELECT * FROM DeptInfoY


/* Partial resultsY

DepartmentID
1
2
*/Y

LastUpdateY
Jun 2 1998 12:00AMY
Jun 3 1998 12:00AMY

@@ Convert string date column to datetimeY


SELECTY
DepartmentID,Y
LastChangeDate=convert(datetime, LastUpdate)Y
FROM DeptInfoY
/* Partial resultsY

DepartmentID
1
2
*/Y
DROP TABLE DeptInfoY
GOY

LastChangeDateY
1998@06@02 00:00:00.000Y
1998@06@03 00:00:00.000Y

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Y
@@ Casting string date & time together and separately
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Y

@@ SQL cast string to datetimeY


SELECT CAST('20100315 16:40:31' AS datetime)Y
@@ Result: 2010@03@15 16:40:31.000Y

YY

@@ SQL cast string to date @ time part 0


SELECT CAST('20100315' AS datetime)Y
@@ Result: 2010@03@15 00:00:00.000Y

YY

@@ SQL cast string to time @ date part 1900@01@01Y


SELECT CAST('16:40:31' AS smalldatetime)Y
@@ Result: 1900@01@01 16:41:00Y
@@@@@@@@@@@@Y
@@ SQL DATEDIFF with string dateY
@@@@@@@@@@@@Y
DECLARE @sDate varchar(10)Y
SET @sDate = '2010/03/15'Y
@@ DATEDIFF (delta) between two dates in monthsY
SELECT GETDATE(), DATEDIFF (MONTH, GETDATE(), @sDate)Y
SELECT GETDATE(), DATEDIFF (MONTH, GETDATE(), CAST(@sDate as datetime))Y
SELECT GETDATE(), DATEDIFF (MONTH, GETDATE(), CONVERT(datetime,@sDate))Y
SELECT GETDATE(), DATEDIFF (MONTH, GETDATE(), CONVERT(datetime,@sDate,111))Y
@@ Seme results for above: 2008@12@29 11:04:51.097
15Y

@@ SQL convert to datetime with wrong style (111 correct, 112 incorrect)Y
SELECT GETDATE(), DATEDIFF (MONTH, GETDATE(), CONVERT(datetime,@sDate,112))Y
/* ERRORY

Msg 241, Level 16, State 1, Line 11Y


Conversion failed when converting date and/or time from character string.Y
*/Y
@@@@@@@@@@@@Y
@@@@@@@@@@@@Y
@@ SQL Server date string search guidelines @ comparing datesY
@@@@@@@@@@@@Y
@@ Date equal searchY
DECLARE @Date1 datetime, @Date2 datetime, @Date3 datetimeY
SET @Date1 = '2012@01@01'Y
SET @Date2 = '2012@01@01 00:00:00.000'Y
SET @Date3 = '2012@01@01 11:00'Y

SELECT @Date1, @Date2, @Date3Y


@@ Date@only @Date1 is translated to datetimeY
@@ 2012@01@01 00:00:00.000
2012@01@01 00:00:00.000
11:00:00.000Y

2012@01@01

@@ The following is a datetime comparison, not a date@only comparisonY


IF (@Date1 = @Date2) PRINT 'EQUAL' ELSE PRINT 'NOT EQUAL'Y
@@ EQUALY

@@
IF
@@
@@
IF
@@

Equal test fails because time parts are differentY


(@Date1 = @Date3) PRINT 'EQUAL' ELSE PRINT 'NOT EQUAL'Y
NOT EQUALY
The string date implicitly converted to datetime for the equal testY
('2012@01@01' = @Date3) PRINT 'EQUAL' ELSE PRINT 'NOT EQUAL'Y
NOT EQUALY

@@ Safe way to search for a specific dateY


SELECT COUNT(*) FROM AdventureWorks.Sales.SalesOrderHeaderY
WHERE '2004/02/01' = CONVERT(varchar, OrderDate,111)Y
@@ 244Y

@@ Equivalent toY
SELECT COUNT(*) FROM AdventureWorks.Sales.SalesOrderHeaderY
WHERE OrderDate BETWEEN '2004/02/01 00:00:00.000' AND '2004/02/01
23:59:59.997'Y
@@ 244Y

Y
Y

@@ Safe way to search for a specific date rangeY


SELECT COUNT(*) FROM AdventureWorks.Sales.SalesOrderHeaderY
WHERE CONVERT(varchar, OrderDate,111) BETWEEN '2004/02/01' AND '2004/02/14'Y
@@ 1059Y

@@ Equivalent toY
SELECT COUNT(*) FROM AdventureWorks.Sales.SalesOrderHeaderY
WHERE OrderDate BETWEEN '2004/02/01 00:00:00.000' AND '2004/02/14
23:59:59.997'Y
@@ 1059Y
SELECT COUNT(*) FROM AdventureWorks.Sales.SalesOrderHeaderY
WHERE OrderDate >= '2004/02/01 00:00:00.000'Y
AND OrderDate < '2004/02/15 00:00:00.000'Y
@@ 1059 Y
@@@@@@@@@@@@Y
@@@@@@@@@@@@Y
@@ SQL Server convert from string to smalldatetimeY
@@@@@@@@@@@@Y
@@ T@SQL convert from format mm/dd/yyyy to smalldatetimeY
SELECT CONVERT(smalldatetime, '10/23/2016', 101)Y
@@ 2016@10@23 00:00:00Y
@@ MSSQL convert from format dd/mm/yyyy to smalldatetimeY
SELECT CONVERT(smalldatetime, '23/10/2016', 103)Y
@@ 2016@10@23 00:00:00Y
@@ Month 23 is out of rangeY
SELECT CONVERT(smalldatetime, '23/10/2016', 101)Y
/* Msg 242, Level 16, State 3, Line 1Y
The conversion of a varchar data type to a smalldatetime data type resultedY
in an out@of@range value.Y
*/Y
@@@@@@@@@@@@Y
@@ Translate/convert string/text hours and minutes to secondsY
@@@@@@@@@@@@Y
DECLARE @TimeStr varchar(16) = '20:49:30'Y
SELECT
PARSENAME(REPLACE(@TimeStr,':','.'),1)Y
+ PARSENAME(REPLACE(@TimeStr,':','.'),2) * 60Y
+ PARSENAME(REPLACE(@TimeStr,':','.'),3) * 3600Y
@@ 74970Y
@@@@@@@@@@@@Y

You might also like