converting string format to date format - sql

I am not able to convert the string to DATE format
select CONVERT(DATE, '8/17/2016', 103)
Conversion failed when converting date and/or time from character string.
what can we do to resolve this
thanks

Actually you don't need that style, It is the one causing the error. Just CAST/CONVERT it to date. Try this
select CONVERT(DATE, '8/17/2016')

You can try with cast also
select cast( '8/17/2016' as date)

SELECT CONVERT(DATE, '8/17/2016', 101)

SELECT convert(datetime, '8/17/2016', 111)

Related

How to convert string dd.mm.yyyy to date in SQL

I have column field of varchar type in format dd.mm.yyyy. I am trying to convert this varchar field to date time in SQL server using
CONVERT(Datetime, LTRIM(RTRIM([Completion Date])), 102)
but it gives me error 'Conversion of varchar type to date type results in out of range value'
How to convert this field to datetime format?
use style 104 (dd.mm.yyyy) instead of 102 (yyyy.mm.dd)
CONVERT(Datetime, LTRIM(RTRIM([Completion Date])), 104)
Also the field of type varchar so there could be some bad dates which needs to be eliminated before the conversion .
If you are using SQL SERVER 2012+ then use TRY_CONVERT, for bad dates it will result NULL
TRY_CONVERT(Datetime, LTRIM(RTRIM([Completion Date])), 104)
You can always use this:
SELECT convert(datetime, '23/07/2009', 102)
You can also use this:
SELECT convert(date, '21.12.2016', 104)
You can use convert with date and datetime as below:
SELECT convert(datetime, '27-09-2013', 104)
SELECT convert(date, '27-09-2013', 104)

Convert Text to Date in SQL Server

How to I convert a text value like "18/06/11" to a date format like "2011-06-18"?
I have tried the following
convert(char,[InstrumentText], 106)
but the value just stays in the same format
Thanks
The correct format for your string would appear to be 103.
More importantly, you need to convert to a datetime not to a char:
convert(date,[InstrumentText], 103)
If you then want to convert it back to a string in the format yyyy-mm-dd, you can do:
convert(varchar(10), convert(date,[InstrumentText], 103), 120)
Try
SELECT convert(datetime, '18/06/11' , 3)
I grabbed this from sqlusa.com:
SELECT CAST([InstrumentText] AS datetime)

sql datetime format

I am trying to convert a date into this format YYYY-MM-DD hh:mm:ss eg. 2007-01-05 23:00:00. But my SQL leaves the string unchanged, can somebody tell me what I am doing wrong?
select convert(varchar,'23/02/2008 00:00:00',120)
Try SELECT CONVERT(DATETIME, '23/02/2008 00:00:00'). All you're doing is converting a string into a string, which won't change anything.
your data type needs to be DATETIME, eg:
select convert(DATETIME, '23/02/2008 00:00:00', 120)
try this. Works for Transact-SQL.
select convert(datetime,'23/02/2008 00:00:00')
I hope it helps
maybe you're looking to do this:
CONVERT(varchar,'23/02/2008 00:00:00',100) 'yyyy-mm-dd hh:mm:ss'
select format(getdate(),'dd-MM-yyyy hh:mm tt')
Following is the syntax to achieve what you are looking for
SELECT CONVERT(VARCHAR(19), GETDATE(), 120)
To know more about the date formats see the link
http://www.sql-server-helper.com/tips/date-formats.aspx

Sql Server datetime conversion

I am trying to convert varchar date value to datetime format. Showing error
select CONVERT(DATETIME, Convert(varchar, 20/12/2009, 103 ),103)
error: Conversion failed when converting datetime from character string.
Geetha
This should work:
select CONVERT(DATETIME, '20/12/2009', 103)
Not sure what your conversion TO varchar is for...
You need quotes around the string otherwise it treats it as an expression and tries to do the divisions:
select CONVERT(DATETIME, Convert(varchar, '20/12/2009', 103 ),103)
Although having said that only one Convert is really necessary so you can use
select CONVERT(DATETIME, '20/12/2009',103)
I would say you at least have to add quotes arround the string representing the date :
select CONVERT(DATETIME, Convert(varchar, '20/12/2009', 103 ),103)
(Maybe there's another problem too : I don't have an SQL Server instance available, so I cannot test)
You need to quote the date string:
select CONVERT(DATETIME, Convert(varchar, '20/12/2009', 103 ),103)
And you don't need two converts. This is should be enough:
select Convert(varchar, '20/12/2009', 103 )

How do I convert a datetime column to nvarchar with the format DD/MM/YYYY?

I need to select a datetime column in a table. However, I want the select statement to return the datetime as a nvarchar with the format DD/MM/YYYY.
Here is the convert documentation:
https://learn.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql
Looking through that, it looks like you want style 103:
SELECT CONVERT(nvarchar(10), getdate(), 103)
This should help. It contains all (or most anyway) the different date formats
http://wiki.lessthandot.com/index.php/Formatting_Dates
I think you'd be better off handling the string conversion in client if possible.
You can convert a date in many formats, in your case :
CONVERT(NVARCHAR(10), YOUR_DATE_TIME, 103) => 15/09/2016
CONVERT(NVARCHAR(10), YOUR_DATE_TIME, 3) => 15/09/16
Syntax:
CONVERT('TheDataTypeYouWant', 'TheDateToConvert', 'TheCodeForFormating' * )
The code is an integer, here 3 is the third formatting option (without century), if you want the century just change the code to 103.
See more at: http://www.w3schools.com/sql/func_convert.asp
select CONVERT (NVARCHAR, GETDATE(), 103)
Look up convert in BOL.
Use Convert with the 103 option.
select convert(nvarchar(10), datefield, 103)