Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Converting Text to Date and Using in a Parameter

Status
Not open for further replies.

sardine53

Programmer
Jul 4, 2003
79
US
SQL Server 2008 R2

I have a stored procedure (simplified) for a SSRS report. The report runs fine but I'm getting an error using a 3rd party product relating to converting parameter value from a String to DateTime.

ALTER PROCEDURE [dbo].[usrsp_S_Activity]
@Start Date,
@End Date,
AS
SELECT
CLIENT.NAME
,CLIENT.CLIENT_ID
,ACT_LOG.CREATE_DATE
,CLIENT.ACTIVE_IND
,Convert(Date,ACT_LOG.CREATE_DATE)AS 'DT_CREATE'

FROM
[CSPRDWEBSRV].[ACTIVITY].[dbo].[CLIENT] CLIENT
INNER JOIN
[CSPRDWEBSRV].[ACTIVITY].[dbo].[ACT_LOG] ACT_LOG ON CLIENT.CLIENT_ID = ACT_LOG.CLIENT_ID

WHERE
ACT_LOG.CREATE_DATE BETWEEN (@Start) and (@End)

The problem I am having is a result the "CREATE_DATE" being stored in the database as varchar(50)and this unfortunately cannot be changed. In the database, the field is formatted 'm/d/yyyy' (sample values: 1/1/2017 and 2/28/2017).

Is there a better way to write the stored procedure format the date?

(I also posted this to SSRS but that forum does not get any action.)

Thanks so much!

- Jackie
 
Can you check the values in the table to see if there are any invalid values?

Code:
Select * 
From   ACT_LOG
Where  IsDate(CREATE_DATE) = 0



-George
Microsoft SQL Server MVP
My Blogs
SQLCop
twitter
"The great things about standards is that there are so many to choose from." - Fortune Cookie Wisdom
 
Code:
WHERE CONVERT(DATE, ACT_LOG.CREATE_DATE, 101) BETWEEN @Start and @End
 
I did try that and the date looked formatted correctly 'yyyy-mm-dd'

I was suspicious when trying to execute the stored procedure and got error after inputting 2017-01-01 and 2017-02-28:

Msg 102, Level 15, State 1, Line 5
Incorrect syntax near '-'.

--------
USE [SQLReports]
GO

DECLARE @return_value int

EXEC @return_value = [dbo].[usrsp_S_Activity]
@Start = 2017-01-01,
@End = 2017-02-15

SELECT 'Return Value' = @return_value

GO
---------
I am at a loss :(
 
You should put apostrophes around your dates when calling the stored procedure. Like this:

Code:
DECLARE	@return_value int

EXEC	@return_value = [dbo].[usrsp_S_Activity]
@Start = [!]'[/!]2017-01-01[!]'[/!],
@End = [!]'[/!]2017-02-15[!]'[/!]

SELECT	'Return Value' = @return_value

-George
Microsoft SQL Server MVP
My Blogs
SQLCop
twitter
"The great things about standards is that there are so many to choose from." - Fortune Cookie Wisdom
 
Yes, thanks that worked. I just wanted to verify the syntax before approaching the vendor.

- Jackie
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top