1

Need help in converting datetime to varchar as in given format

2015-01-04 16:07:37.000"

to

01/04/2015 16:07PM

Here is what tried:

convert(varchar(20),datetime,103)+ ' '+convert(varchar(20),datetime,108)+ ' ' +right(convert(varchar(30),datetime,109),2)
Rahul
  • 76,197
  • 13
  • 71
  • 125
user3244104
  • 111
  • 3
  • 9

3 Answers3

1

this will work in sqlserver SQLFiddle regarding this Demo

SELECT convert(varchar, getdate(), 103) 
+' '+ CONVERT(varchar(15),CAST(getdate() AS TIME),100)
Ameya Deshpande
  • 3,580
  • 4
  • 30
  • 46
1

This will get your string from current datetime in the format 06/22/15 1:46:07 PM.

 SELECT CONVERT(VARCHAR(50), GETDATE(), 22) 

Try using Format

SELECT FORMAT(GETDATE(), 'g')

which will get 6/22/2015 1:57 PM.

Peter Campbell
  • 661
  • 1
  • 7
  • 35
0

You can always build it yourself using DATEPART...

SELECT
    RIGHT('0' + CONVERT(nvarchar(max), DATEPART(m, Date_Field)), 2) + '/' + 
    RIGHT('0' + CONVERT(nvarchar(max), DATEPART(d, Date_Field)), 2) + '/' + 
    CONVERT(nvarchar(max), DATEPART(yyyy, Date_Field))  + ' ' + 
    RIGHT('0' + CONVERT(nvarchar(max), DATEPART(hour, Date_Field)), 2) + ':' + 
    RIGHT('0' + CONVERT(nvarchar(max), DATEPART(minute, Date_Field)), 2) + 
    RIGHT(CONVERT(VARCHAR(30), Date_Field, 9), 2) 

Then you can use custom delimiters between the date and times, add seconds (or milliseconds, etc.) as you need. Wrap it in a UDF if you find the need to use it a lot.

LDMJoe
  • 1,591
  • 13
  • 17