I have a select statement which contains a number, description, date. when i try to add my date to the statement and run it i get a date conversion from character string error and i am not really sure how to go about it.
DECLARE @parties AS TABLE (
PartyId UNIQUEIDENTIFIER
, Cases NVARCHAR(MAX)
, CaseTypes VARCHAR(MAX)
, Assignment DateTime)
DECLARE @cases NVARCHAR(MAX)
DECLARE @casetypes VARCHAR(MAX)
DECLARE @assignment DateTime
DECLARE @linebreak AS VARCHAR(2)
SET @cases = NULL
SET @casetypes = NULL
SET @assignment = NULL
SET @linebreak = CHAR(13) + CHAR(10)
SELECT @cases = COALESCE(@cases+ @linebreak + C.CaseNumber, C.CaseNumber)+"-"+CT.[Description]+"-"+A.DateOn
FROM [Case] C
INNER JOIN CaseType CT ON C.CaseTypeId = CT.CaseTypeId
INNER JOIN @partyCases PC ON C.CaseId = PC.CaseId
INNER JOIN Appointment A ON C.CaseId = A.CaseId
WHERE PC.PartyId = @partyId
The error occurs after adding A.DateOn to my select statement and running it – any suggestions will be great. Thanks!
SQL returns Date values as datetime and such values can not be implicitly used as strings (varchars). You will have to explicitly convert or cast them. So, change your select statement in either of the 2 ways below:
OR
CONVERT has a slight advantage – you can apply formatting on the date, if you want.