Convert varchar dd/mm/yyyy to dd/mm/yyyy datetime - sql-server

I'm trying to convert a date in a varchar column in the dd/mm/yyyy format into the datetime dd/mm/yyyy format, so then I can run date range queries on the data.
So far I have the following which is not working
CONVERT(varchar, CAST(date_started AS datetime), 103)
I have also tried
convert(date_started as datetime, 103)
I need to make sure the output is as dd/mm/yyyy as we're in the UK and not the mm/dd/yyyy format

I think you are after this:
CONVERT(datetime, date_as_string, 103)
Notice, that datetime hasn't any format. You think about its presentation. To get the data of datetime in an appropriate format you can use
CONVERT(varchar, date_as_datetime, 103)

Try this code:
CONVERT(varchar(15), date_started, 103)

I think that more accurate is this syntax:
SELECT CONVERT(CHAR(10), GETDATE(), 103)
I add SELECT and GETDATE() for instant testing purposes :)

If you want to return a format mm/dd/yyyy, then use 101 instead of 103:
CONVERT(VARCHAR(10), [MyDate], 101)

You can do like this:
SELECT convert(datetime, convert(date, '27-09-2013', 103), 103)

Related

How to handle MMddyyyy date format in SQL Server?

I am getting the date in following string formats from third party vendor API:
MM/dd/yyyy
yyyy/MM/dd
yyyyMMdd
yyyy-MM-dd
MMddyyyy
So some of the records have date of birth in yyyy-MM-dd and some of the records have DOB in other format.
Except format MMddyyyy, all the formats are converted to yyyy-MM-dd using SQL Convert/Cast function.
How do I convert MMddyyyy it to yyyy-MM-dd?
I am trying below statement in SQL Server 2019 but its not working:
DECLARE #dt varchar(8)= '02022020';
SELECT CAST(#dt as date) s1;
Msg 241, Level 16, State 1, Line 20
Conversion failed when converting date and/or time from character string.
Is there any way I can handle this scenario in SQL Server?
Be informed: I am trying to implement below ADF code using SQL stored procedure.
coalesce(toDate(DOB,'MM/dd/yyyy')
,toDate(DOB,'yyyy/MM/dd')
,toDate(DOB,'yyyyMMdd')
,toDate(DOB,'MMddyyyy')
,toDate(DOB,'yyyy-MM-dd'))
There is no style code for MMddyyyy as far as I am aware, so the easiest way is probably to just convert the string to yyyyMMdd first, e.g.
CONCAT(RIGHT(#dt, 4), LEFT(#dt, 4))
Then convert that to a date:
DECLARE #dt varchar(8)= '02022020';
SELECT CONVERT(DATE, CONCAT(RIGHT(#dt, 4), LEFT(#dt, 4)), 112)
Below is the SQL statements to handle all the formats.
MM/dd/yyyy
yyyy/MM/dd
yyyyMMdd
yyyy-MM-dd
MMddyyyy
DECLARE #date varchar(10)= '2020-03-15';
SELECT CASE
WHEN #date IS NULL
THEN NULL
WHEN TRY_CONVERT(DATE, #date) IS NOT NULL
THEN CAST(#date AS DATE)
WHEN TRY_CONVERT(DATE, #date) IS NULL
THEN CONVERT(DATE, CONCAT(RIGHT(#date, 4), LEFT(#date, 4)), 112)
END;
Have you tried the following? SELECT FORMAT (yourdate, 'MM-dd-yy'). let me know

Convert Datetime format to varchar in SQL Server

I have this code in my view in SQL Server to convert datetime to varchar.
convert(datetime, Product_Info.created_date, 101)
but I get this error
Update cannot proceed due to validation errors.
Please correct the following errors and try again.
SQL70569 :: A column name is required.
What's wrong? Please advice.
Change CONVERT(DATETIME to CONVERT(VARCHAR(10)
For MM/DD/YYYY format (USA):
SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS [MM/DD/YYYY]
Gets you '02/12/2016'
For MMDDYYYY:
SELECT REPLACE(CONVERT(VARCHAR(10), GETDATE(), 101), '/', '') AS [MMDDYYYY]
Gets you '02122016'

SQL - Convert varchar (dd/mm/yyyy hh.mm AM/PM) to datetime

I'm trying to convert a varchar field to datetime. The data in the varchar field looks like this dd/mm/yyyy hh.mm AM/PM.
I'm actually trying to extract the date part & time part and convert them to date and time respectively.
And I use the below query to extract the date part from the varchar and convert it to date.
SELECT DISTINCT LEFT([Start Date], 10)
,CASE WHEN ISDATE(LEFT([Start Date], 10)) = 1
THEN CONVERT(DATETIME, LEFT([Start Date], 10), 120)
END
,ISDATE(LEFT([Start Date], 10))
FROM [dbo].[TestTable]
I have timestamp in the format mentioned above for entire August.
But the query gives me the result in yyyy-dd-mm format and the date are converted to date format only till 12 Aug'15. Date after 12 of Aug is null. I know it's because, in the case statement they are returned 0. How can I convert those values also to date?
Any suggestions to convert all the values to yyyy-mm-dd hh:mm:ss will be very helpful.
Thanks in advance.
You could use SET DATEFORMAT as lad2025 suggested.
SET DATEFORMAT dmy
Or you can use the following in your CONVERT()
DECLARE #date VARCHAR(16) = '13/08/2015 11:13';
SELECT CONVERT(DATETIME, #date, 103)
103 is the code for dd/mm/yyyy.

How to convert Date format in SQL Server?

Basically I want to convert date format from 'yyyy-mm-dd' to 'mm/dd/yyyy'.
Now here is the thing :
I used this to select current date.
Select GetDate();
Which shows the format as : 2015-07-10 14:29:30.227
Then :
Select CONVERT(VARCHAR, GETDATE(), 101)
It is working and displaying the result as : 07/10/2015
Now when I try to do this:
Select CONVERT(DATE, CAST('2015-06-15' AS DATE), 101)
And it does not show the desired result. Instead it shows the same format as : 2015-06-15
Any suggesstion would be of great help!!
Try this:
Select CONVERT(Varchar(10), CAST('2015-06-15' AS DATE), 101)

How do I convert SQL getdate() function into a string in dd/mm/yyyy format?

How do I convert SQL getdate() function into a string in dd/mm/yyyy format?
Try:
select convert(varchar(10),getdate(),103)
There's more info on the different conversion codes here.
Use conversion code 103
convert(varchar, getdate(), 103)
this worked for me
replace(convert(char(11),getdate(),113),' ','-')

Resources