The Script is used to get datetime in comminly used formats, it also contains some basic date time features.
If anyone wants to add more options , they are more than likely to do so, please just mention my name in the script.
The Script is used to get datetime in comminly used formats, it also contains some basic date time features.
If anyone wants to add more options , they are more than likely to do so, please just mention my name in the script.
create FUNCTION [dbo].[KDT_FN_FORMATDATETIME]( @DateFormatvarchar(50), @DateDATETIME ) /* Auther- Kraai (JF) Du Toit use : select dbo.[KDT_FN_FORMATDATETIME]('YYYY-MM-DD',getdate()) select dbo.[KDT_FN_FORMATDATETIME]('LASTDAY DDDD',getdate()) SELECT dbo.KDT_FN_FORMATDATETIME('Dayofyear', GETDATE()+200) SELECT dbo.KDT_FN_FORMATDATETIME('LASTDAY DDDD', GETDATE()+245) SELECT dbo.KDT_FN_FORMATDATETIME('YYYY-MM-DD', GETDATE()+245) Purpose- Converting To different datetime formats and relavant date parts Parameters|Result ________________________________________________________________________ dd-mmm-yyyy| 22-OCT-2008 MMM DD YYYY HH-mm Am/pm|Oct 22 2008 6-02AM MM/DD/YYYY|10/22/2008 YYYY.MM.DD|2008.10.22 DD/MM/YYYY|22/10/2008 DD.MM.YYYY|22.10.2008 DD/MM/YYYY|22/10.2008 DD-MM-YYYY|22-10-2008 DD MMM YYYY|22 Oct 2008 MMM DD,YYYY| Oct 22, 2008 HH-mm-SS|06-33-22 MMM DD YYYY H-mm-SS-MSAM/PM|Oct 22 2008 6-12-30-540AM DD-MM-YYYY| 22-10-2008 YYYY/MM/DD|2008/10/22 YYYYMMDD|20081022 DD MMM YYYY HH-mm-SS-MS|Oct 22 2008 6-12-30-540AM (will actually by colon, but we can use here since install cd breaks) HH-mm-SS-MS|06-18-30-740 Julion|39741 Day| 22 Month| 10 Year| 2008 YYYY-MM| 2008-10 MM-YYYY| 10-2008 YYYY MM|2008 10 MM YYYY| 10 2008 Week| 43 week in year Dayofyear| 293 day in year quarter| 4 Year Quarter Weekday| 4 day number of week MMMM|October DDDD| Wednesday DDDD DD MMMM YYYY| Wednesday 22 October 2008 DDDD MMMM YYYY|Wednesday October 2008 LASTDAY| 2008/10/31 (last day of month) LASTDAY DDDD| Friday (last day of month) YYYY-MM-DD| 2008-11-11 */RETURNS VARCHAR(30) AS BEGIN DECLARE @myRes VARCHAR(25) IF @DateFormat = 'dd-mmm-yyyy' BEGIN SET @myRes = Cast(day(@Date) as varchar(2))+'-'+(substring(datename(m, @Date),1,3))+'-'+cast(year(@Date) as varchar(4)) END -- 'Returns the date MMM DD YYYY HH:mm Am/pm' -- 'EG Oct 22 2008 6:02AM' IF @DateFormat = 'MMM DD YYYY HH:mm Am/pm' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,100) END -- Returns the date MM/DD/YYYY -- EG 10/22/2008 IF @DateFormat = 'MM/DD/YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,101) END -- Returns the date YYYY.MM.DD -- EG 2008.10.22 IF @DateFormat = 'YYYY.MM.DD' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,102) END -- Returns the date DD/MM/YYYY -- EG 22/10/2008 IF @DateFormat = 'DD/MM/YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,103) END -- Returns the date DD.MM.YYYY -- EG 22.10.2008 IF @DateFormat = 'DD.MM.YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,104) END -- Returns the date DD-MM-YYYY -- EG 22-10-2008 IF @DateFormat = 'DD-MM-YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,105) END -- Returns the date DD MMM YYYY -- EG 22 Oct 2008 IF @DateFormat = 'DD MMM YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,106) END -- Returns the date DD MMM YYYY -- EG Oct 22, 2008 IF @DateFormat = 'MMM DD,YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,107) END -- 'Returns the time HH:mm:SS' -- 'EG 06:11:24' IF @DateFormat = 'HH:mm:SS' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,108) END -- 'Returns the Date MMM DD YYYY H:mm:SS:MSAM/PM' -- 'EG Oct 22 2008 6:12:30:540AM' IF @DateFormat = 'MMM DD YYYY H:mm:SS:MSAM/PM' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,109) END -- Returns the Date DD-MM-YYYY -- EG 10-22-2008 IF @DateFormat = 'DD-MM-YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,110) END -- Returns the Date YYYY/MM/DD -- EG 2008/10/22 IF @DateFormat = 'YYYY/MM/DD' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,111) END -- Returns the Date YYYYMMDD -- EG 20081022 IF @DateFormat = 'YYYYMMDD' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,112) END -- 'Returns the Date DD MMM YYYY HH:mm:SS:MS' -- 'EG 22 Oct 2008 06:17:18:883' IF @DateFormat = 'DD MMM YYYY HH:mm:SS:MS' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,113) END -- 'Returns the time HH:mm:SS:MS' -- 'EG 06:18:30:740' IF @DateFormat = 'HH:mm:SS:MS' BEGIN SET @myRes = CONVERT(VARCHAR(30),@Date,114) END -- Returns the Date Julion -- EG 2008-10-22 is represented as 39741 IF @DateFormat = 'Julion' BEGIN SET @myRes = CONVERT(VARCHAR(30), (DATEDIFF (day, CONVERT(datetime, '1900-01-01', 110) , @Date))) END -- Returns the Day -- EG 2008-10-22 is represented as 22 IF @DateFormat = 'Day' BEGIN SET @myRes = CONVERT(VARCHAR(30),DAY(@Date)) END -- Returns the Month -- EG 2008-10-22 is represented as 10 IF @DateFormat = 'Month' BEGIN SET @myRes = CONVERT(VARCHAR(30),Month(@Date)) END -- Returns the year -- EG 2008-10-22 is represented as 2008 IF @DateFormat = 'Year' BEGIN SET @myRes = CONVERT(VARCHAR(30),Year(@Date)) END -- Returns the date in YYYY-MM -- EG 2008-10-22 is represented as 2008-10 IF @DateFormat = 'YYYY-MM' BEGIN SET @myRes = CONVERT(VARCHAR(30),Year(@Date))+'-'+CONVERT(VARCHAR(30),Month(@Date)) END -- Returns the date in MM-YYYY -- EG 2008-10-22 is represented as 10-2008 IF @DateFormat = 'MM-YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),Month(@Date))+'-'+CONVERT(VARCHAR(30),Year(@Date)) END -- Returns the date in YYYY MM -- EG 2008-10-22 is represented as 2008-10 IF @DateFormat = 'YYYY MM' BEGIN SET @myRes = CONVERT(VARCHAR(30),Year(@Date))+' '+CONVERT(VARCHAR(30),Month(@Date)) END -- Returns the date in MM YYYY -- EG 2008-10-22 is represented as 10 2008 IF @DateFormat = 'MM YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),Month(@Date))+' '+CONVERT(VARCHAR(30),Year(@Date)) END -- Returns the date in WeekNo -- EG 2008-10-22 is represented as week 43 IF @DateFormat = 'Week' BEGIN SET @myRes = CONVERT(VARCHAR(30),DATEPART(wk,@Date)) END -- Returns the date in Dayofyear -- EG 2008-10-22 is represented as 296 IF @DateFormat = 'Dayofyear' BEGIN SET @myRes = CONVERT(VARCHAR(30),DATEPART(dy,@Date)) END -- Returns the Quarter of the year -- EG 2008-10-22 is represented as week 4 IF @DateFormat = 'quarter' BEGIN SET @myRes = CONVERT(VARCHAR(30),DATEPART(qq,@Date)) END -- Returns the day of the week starting on Sunday as day 1 -- EG 2008-10-22 is represented as day 4 IF @DateFormat = 'Weekday' BEGIN SET @myRes = CONVERT(VARCHAR(30),DATEPART(dw,@Date)) END -- Returns the day of the long Month name format -- EG 2008-10-22 is represented as day OCtober IF @DateFormat = 'MMMM' BEGIN SET @myRes = CONVERT(VARCHAR(30),DAteNAME(month,@Date )) END -- Returns the day of the long Month name format -- EG 2008-10-22 is represented as Wednesday IF @DateFormat = 'DDDD' BEGIN SET @myRes = CONVERT(VARCHAR(30),DAteNAME(weekday,@Date )) END -- Returns the day of the long Month name format -- EG 2008-10-22 is represented as 22 OCtober 2008 IF @DateFormat = 'DDDD DD MMMM YYYY' BEGIN SET @myRes = DATENAME(weekday,@Date) + ' '+CONVERT(VARCHAR(30),DAtEPART(DAY,@Date ))+ ' '+ CONVERT(VARCHAR(30),DAteNAME(month, @Date)) + ' '+ CONVERT(VARCHAR(30),DAtEPART(YEAR,@Date )) END -- Returns the day of the long Month name format -- EG 2008-10-22 is represented as 22 OCtober 2008 IF @DateFormat = 'DD MMMM YYYY' BEGIN SET @myRes = CONVERT(VARCHAR(30),DAtEPART(DAY,@Date ))+ ' '+ CONVERT(VARCHAR(30),DAteNAME(month, @Date)) + ' '+ CONVERT(VARCHAR(30),DAtEPART(YEAR,@Date )) END -- Returns the day of the last Day of month -- EG 2008-10-22 is represented as 2008/10/31 IF @DateFormat = 'LASTDAY' BEGIN SET @myRes =CONVERT(VARCHAR(30),dateadd(day,-1* day(dateadd(month,1,@Date)),dateadd(month,1,@Date)),111) END -- Returns the day of the last Day of month -- EG 2008-10-22 is represented as Friday IF @DateFormat = 'LASTDAY DDDD' BEGIN SET @myRes =CONVERT(VARCHAR(30), DATENAME(weekday,dateadd(day,-1* day(dateadd(month,1,@Date)),dateadd(month,1,@Date))), 111) END IF @DateFormat = 'YYYY-MM-DD' BEGIN DECLARE @DAY CHAR(2) ,@MONTH CHAR(2) SELECT @DAY = DAY(@Date) IF( LEN(@DAY) < 2) SELECT @DAY = '0'+@DAY SELECT @MONTH = MONTH(@Date) IF( LEN(@MONTH) < 2) SELECT @MONTH = '0'+@MONTH SET @myRes = CONVERT(VARCHAR(4),Year(@Date))+'-'+@MONTH+'-'+@DAY END -- Return Results -- RETURN(@myRes); END