Hi All,
I get the following error when I run the below query. Can anyone help me with this one.
ERROR:
Msg 241, Level 16, State 1, Line 1
Syntax error converting datetime from character string.
QUERY:
declare @m_UID int,
@m_use_dates bit,
@m_site_id int ,
@m_from datetime ,
@m_to datetime ,
@m_ctrl varchar(255),
@m_order int ,
@m_job int ,
@m_shpd bit ,
@m_inv varchar( 50),
@m_stu_site varchar( 30),
@m_active_only bit
set @m_UID = 4135
set @m_use_dates = 1
set @m_site_id = 0
set @m_from = '1/17/2007'
set @m_to = '1/18/2007'
set @m_ctrl = ''
set @m_order = -1
set @m_job = -1
set @m_shpd = 0
set @m_inv = ''
set @m_stu_site = ''
set @m_active_only = 1
SET NOCOUNT ON
-- DECLARE @l_end varchar( 17), @l_start varchar( 17),
declare @l_select varchar(8000), @l_order varchar(1000),
@new_todate datetime
-- SELECT @l_start = CONVERT(varchar, @m_from, 112),
-- @l_end = CONVERT(varchar, @m_to, 112)
select @new_todate = dateadd(day,1,@m_to)
SELECT @l_select = 'SELECT DISTINCT o.CPPS_Site, s.CustNo, s.Protocol_Name,
REPLACE(STR(s.CPPS_Job, 5), '' '', ''0'') AS Job,
rder_Num, o.Control_Num, o.Status,
dbo.prGetSiteInitial(o.CPPS_Site) AS ''SiteInitial'',
c.custname, oa.Study_Site,
u.User_Name AS Project_Mgr,
u.Email AS PM_Email,
CONVERT(varchar, o.Entered_Date, 107) AS Entered_Date,
ISNULL(CONVERT(varchar, o.Shipped_Date, 107), '''') AS Shipped_Date,
dbo.prDistGetOrderStatusName (o.Status, dbo.prDistGetTrackCount(
rder_Num, o.CPPS_Site, 1), dbo.prDistGetTrackCount(
rder_Num, o.CPPS_Site, 2)) AS StatusName,
dbo.prDistGetOrderStatusLink (o.Status, dbo.prDistGetTrackCount(
rder_Num, o.CPPS_Site, 1)) AS StatusLink,
dbo.prDistGetOrderStatusColor (o.Status, dbo.prDistGetTrackCount(
rder_Num, o.CPPS_Site, 1), dbo.prDistGetTrackCount(
rder_Num, o.CPPS_Site, 2)) AS StatusColor,
CONVERT(varchar, o.' + CASE (@m_shpd)
WHEN 0 THEN 'Entered'
ELSE 'Shipped'
END + '_Date, 112) AS Sort_Date
FROM abcweb.db
rders o (NOLOCK)
INNER JOIN abcweb.dbo.Studies s (NOLOCK) ON ((s.Study_ID = o.Study_ID) AND (s.CPPS_Site = o.CPPS_Site)' +
CASE WHEN (@m_active_only <> 0) THEN ' AND (s.Active = 1)' ELSE '' END +
CASE WHEN (@m_job >= 0) THEN ' AND (s.CPPS_Job = ' + CONVERT(varchar, @m_job) + ')' ELSE '' END +
CASE WHEN (@m_site_id >= 0) THEN ' AND (o.CPPS_Site = ' + CONVERT(varchar, @m_site_id) + ')' ELSE '' END +
')
INNER JOIN abcweb.db
rder_Addresses oa (NOLOCK) ON ((
rder_Num = oa.Order_Num) AND (oa.Addr_Type = 0) AND (o.CPPS_Site = oa.CPPS_Site) ' +
CASE WHEN ((ISNULL(RTRIM(LTRIM(@m_inv)), '')) <> '') THEN ' AND (LOWER(oa.L_Name) LIKE ''%' + LTRIM(RTRIM(REPLACE(LOWER(@m_inv), '''', ''''''''))) + '%'')' ELSE '' END +
CASE WHEN ((ISNULL(RTRIM(LTRIM(@m_stu_site)), '')) <> '') THEN ' AND (LOWER(oa.Study_Site) LIKE ''%' + LTRIM(RTRIM(REPLACE(LOWER(@m_stu_site), '''', ''''''''))) + '%'')' ELSE '' END +
')
INNER JOIN abcweb.dbo.Customer c (NOLOCK) ON ((s.CPPS_Site = c.Site) AND (c.custno = s.CustNo))
INNER JOIN abcweb.dbo.Users u (NOLOCK) ON ((u.User_ID = s.Project_Mgr) AND (u.CPPS_Site = s.CPPS_Site))
INNER JOIN #Prots p (NOLOCK) ON ((p.SiteID = s.CPPS_Site) AND (p.CustomerID = s.CustNo) AND (p.Protocol = s.Protocol_Name) AND (p.JobID = s.CPPS_Job))
WHERE (1=1) ' +
CASE (@m_use_dates)
WHEN 1 THEN
CASE (@m_shpd)
WHEN 0 THEN ' AND o.Entered_Date >= ' + '''@m_from''' + ' AND ' + 'o.Entered_Date < ' + '''@new_todate'''
ELSE ' AND ((o.Shipped_Date IS NOT NULL) AND ' +
'o.Shipped_Date >= ' + '''@m_from''' + ' AND ' + 'o.Shipped_Date <' + '''@l_end''' + ')'
END
ELSE ''
END +
CASE WHEN (@m_order > 0) THEN ' AND (
rder_Num = ' + CONVERT(varchar, @m_order) + ')' ELSE '' END +
CASE WHEN (@m_shpd <> 0) THEN ' AND (o.Status = 5)' ELSE '' END +
CASE WHEN ((ISNULL(LTRIM(RTRIM(@m_ctrl)), '')) <> '') THEN ' AND (o.Control_Num LIKE ''%' + @m_ctrl + '%'')' ELSE '' END,
@l_order = + 'ORDER BY Sort_Date DESC, s.CustNo, s.Protocol_Name, o.CPPS_Site,
rder_Num'
CREATE
TABLE #Prots
(SiteID int NOT NULL ,
CustomerID varchar(12) NOT NULL ,
CustomerName varchar(70) NOT NULL ,
Protocol varchar(50) NOT NULL ,
JobID int NOT NULL ,
Active bit NOT NULL)
INSERT INTO #Prots EXEC dbo.puDistGetProtocolListForUser @m_UID, 3, @m_site_id, 1
SET NOCOUNT OFF
EXEC(@l_select + ' ' + @l_order)
/**/
RETURN
Thanks,
-TechiPA
I get the following error when I run the below query. Can anyone help me with this one.
ERROR:
Msg 241, Level 16, State 1, Line 1
Syntax error converting datetime from character string.
QUERY:
declare @m_UID int,
@m_use_dates bit,
@m_site_id int ,
@m_from datetime ,
@m_to datetime ,
@m_ctrl varchar(255),
@m_order int ,
@m_job int ,
@m_shpd bit ,
@m_inv varchar( 50),
@m_stu_site varchar( 30),
@m_active_only bit
set @m_UID = 4135
set @m_use_dates = 1
set @m_site_id = 0
set @m_from = '1/17/2007'
set @m_to = '1/18/2007'
set @m_ctrl = ''
set @m_order = -1
set @m_job = -1
set @m_shpd = 0
set @m_inv = ''
set @m_stu_site = ''
set @m_active_only = 1
SET NOCOUNT ON
-- DECLARE @l_end varchar( 17), @l_start varchar( 17),
declare @l_select varchar(8000), @l_order varchar(1000),
@new_todate datetime
-- SELECT @l_start = CONVERT(varchar, @m_from, 112),
-- @l_end = CONVERT(varchar, @m_to, 112)
select @new_todate = dateadd(day,1,@m_to)
SELECT @l_select = 'SELECT DISTINCT o.CPPS_Site, s.CustNo, s.Protocol_Name,
REPLACE(STR(s.CPPS_Job, 5), '' '', ''0'') AS Job,
dbo.prGetSiteInitial(o.CPPS_Site) AS ''SiteInitial'',
c.custname, oa.Study_Site,
u.User_Name AS Project_Mgr,
u.Email AS PM_Email,
CONVERT(varchar, o.Entered_Date, 107) AS Entered_Date,
ISNULL(CONVERT(varchar, o.Shipped_Date, 107), '''') AS Shipped_Date,
dbo.prDistGetOrderStatusName (o.Status, dbo.prDistGetTrackCount(
dbo.prDistGetOrderStatusLink (o.Status, dbo.prDistGetTrackCount(
dbo.prDistGetOrderStatusColor (o.Status, dbo.prDistGetTrackCount(
CONVERT(varchar, o.' + CASE (@m_shpd)
WHEN 0 THEN 'Entered'
ELSE 'Shipped'
END + '_Date, 112) AS Sort_Date
FROM abcweb.db
INNER JOIN abcweb.dbo.Studies s (NOLOCK) ON ((s.Study_ID = o.Study_ID) AND (s.CPPS_Site = o.CPPS_Site)' +
CASE WHEN (@m_active_only <> 0) THEN ' AND (s.Active = 1)' ELSE '' END +
CASE WHEN (@m_job >= 0) THEN ' AND (s.CPPS_Job = ' + CONVERT(varchar, @m_job) + ')' ELSE '' END +
CASE WHEN (@m_site_id >= 0) THEN ' AND (o.CPPS_Site = ' + CONVERT(varchar, @m_site_id) + ')' ELSE '' END +
')
INNER JOIN abcweb.db
CASE WHEN ((ISNULL(RTRIM(LTRIM(@m_inv)), '')) <> '') THEN ' AND (LOWER(oa.L_Name) LIKE ''%' + LTRIM(RTRIM(REPLACE(LOWER(@m_inv), '''', ''''''''))) + '%'')' ELSE '' END +
CASE WHEN ((ISNULL(RTRIM(LTRIM(@m_stu_site)), '')) <> '') THEN ' AND (LOWER(oa.Study_Site) LIKE ''%' + LTRIM(RTRIM(REPLACE(LOWER(@m_stu_site), '''', ''''''''))) + '%'')' ELSE '' END +
')
INNER JOIN abcweb.dbo.Customer c (NOLOCK) ON ((s.CPPS_Site = c.Site) AND (c.custno = s.CustNo))
INNER JOIN abcweb.dbo.Users u (NOLOCK) ON ((u.User_ID = s.Project_Mgr) AND (u.CPPS_Site = s.CPPS_Site))
INNER JOIN #Prots p (NOLOCK) ON ((p.SiteID = s.CPPS_Site) AND (p.CustomerID = s.CustNo) AND (p.Protocol = s.Protocol_Name) AND (p.JobID = s.CPPS_Job))
WHERE (1=1) ' +
CASE (@m_use_dates)
WHEN 1 THEN
CASE (@m_shpd)
WHEN 0 THEN ' AND o.Entered_Date >= ' + '''@m_from''' + ' AND ' + 'o.Entered_Date < ' + '''@new_todate'''
ELSE ' AND ((o.Shipped_Date IS NOT NULL) AND ' +
'o.Shipped_Date >= ' + '''@m_from''' + ' AND ' + 'o.Shipped_Date <' + '''@l_end''' + ')'
END
ELSE ''
END +
CASE WHEN (@m_order > 0) THEN ' AND (
CASE WHEN (@m_shpd <> 0) THEN ' AND (o.Status = 5)' ELSE '' END +
CASE WHEN ((ISNULL(LTRIM(RTRIM(@m_ctrl)), '')) <> '') THEN ' AND (o.Control_Num LIKE ''%' + @m_ctrl + '%'')' ELSE '' END,
@l_order = + 'ORDER BY Sort_Date DESC, s.CustNo, s.Protocol_Name, o.CPPS_Site,
CREATE
TABLE #Prots
(SiteID int NOT NULL ,
CustomerID varchar(12) NOT NULL ,
CustomerName varchar(70) NOT NULL ,
Protocol varchar(50) NOT NULL ,
JobID int NOT NULL ,
Active bit NOT NULL)
INSERT INTO #Prots EXEC dbo.puDistGetProtocolListForUser @m_UID, 3, @m_site_id, 1
SET NOCOUNT OFF
EXEC(@l_select + ' ' + @l_order)
/**/
RETURN
Thanks,
-TechiPA