user1732206
user1732206

Reputation: 19

how convert string variable to datetime variable in sql-server?

I'm relatively new to sql-server; I'm trying to have a start-date and end-date pulled from a form-variable as string then convert it into datetime (yyyy-mm-dd) format and I can't seem to find anything that works. Attempted code and resulting error is below. Any advice would be appreciated.

declare @startdate as varchar
declare @enddate as varchar
set @startdate=cast(@startdate as datetime)
set @enddate=cast(@enddate as datetime)

SELECT order_date, inv_no 
from invoices 
where order_date between @startdate and @enddate

The error I keep getting is:

Conversion failed when converting datetime from character string.

How do I fix this?

Upvotes: 2

Views: 13609

Answers (2)

joby-flick
joby-flick

Reputation: 1838

you don't have to cast necessarily

declare @startdate varchar(50)
declare @enddate varchar(50)
declare @start datetime = @startdate, @end datetime = @enddate
select @start, @end

Upvotes: 0

Taryn
Taryn

Reputation: 247870

specify a length for your varchar:

declare @startdate as varchar(10)
declare @enddate as varchar(10)
set @startdate=cast(@startdate as datetime)
set @enddate=cast(@enddate as datetime)

SELECT order_date, inv_no 
from invoices 
where order_date between @startdate and @enddate

Upvotes: 2

Related Questions