Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Use DATENAME and wrap the logic in a Function, not a Stored Proc</p> <pre><code>declare @myTime as DateTime set @myTime = GETDATE() select @myTime select DATENAME(day, @myTime) + SUBSTRING(UPPER(DATENAME(month, @myTime)), 0,4) </code></pre> <p>Returns "14OCT"</p> <p>Try not to use any Character / String based operations if possible when working with dates. They are numerical (a float) and performance will suffer from those data type conversions. </p> <p>Dig these handy conversions I have compiled over the years...</p> <pre><code>/* Common date functions */ --//This contains common date functions for MSSQL server /*Getting Parts of a DateTime*/ --//gets the date only, 20x faster than using Convert/Cast to varchar --//this has been especially useful for JOINS SELECT (CAST(FLOOR(CAST(GETDATE() as FLOAT)) AS DateTime)) --//gets the time only (date portion is '1900-01-01' and is considered the "0 time" of dates in MSSQL, even with the datatype min value of 01/01/1753. SELECT (GETDATE() - (CAST(FLOOR(CAST(GETDATE() as FLOAT)) AS DateTime))) /*Relative Dates*/ --//These are all functions that will calculate a date relative to the current date and time /*Current Day*/ --//now SELECT (GETDATE()) --//midnight of today SELECT (DATEADD(ms,-4,(DATEADD(dd,DATEDIFF(dd,0,GETDATE()) + 1,0)))) --//Current Hour SELECT DATEADD(hh,DATEPART(hh,GETDATE()),CAST(FLOOR(CAST(GETDATE() AS FLOAT)) as DateTime)) --//Current Half-Hour - if its 9:36, this will show 9:30 SELECT DATEADD(mi,((DATEDIFF(mi,(CAST(FLOOR(CAST(GETDATE() as FLOAT)) as DateTime)), GETDATE())) / 30) * 30,(CAST(FLOOR(CAST(GETDATE() as FLOAT)) as DateTime))) /*Yearly*/ --//first datetime of the current year SELECT (DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)) --//last datetime of the current year SELECT (DATEADD(ms,-4,(DATEADD(yy,DATEDIFF(yy,0,GETDATE()) + 1,0)))) /*Monthly*/ --//first datetime of current month SELECT (DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0)) --//last datetime of the current month SELECT (DATEADD(ms,-4,DATEADD(mm,1,DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0)))) --//first datetime of the previous month SELECT (DATEADD(mm,DATEDIFF(mm,0,GETDATE()) -1,0)) --//last datetime of the previous month SELECT (DATEADD(ms, -4,DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0))) /*Weekly*/ --//previous monday at 12AM SELECT (DATEADD(wk,DATEDIFF(wk,0,GETDATE()) -1 ,0)) --//previous friday at 11:59:59 PM SELECT (DATEADD(ms,-4,DATEADD(dd,5,DATEADD(wk,DATEDIFF(wk,0,GETDATE()) -1 ,0)))) /*Quarterly*/ --//first datetime of current quarter SELECT (DATEADD(qq,DATEDIFF(qq,0,GETDATE()),0)) --//last datetime of current quarter SELECT (DATEADD(ms,-4,DATEADD(qq,DATEDIFF(qq,0,GETDATE()) + 1,0))) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload