incompatible in the add operator
Jeg sidder og prøver at danne en mail i SQL som skal sendes med dbmail og det virker sådan set også fint nok.Men jeg prøver at indsætte en dato som jeg gerne vil konvertere til normal visning, men støder så en i et andet problem som jeg ikke lige ved hvordan jeg løser.
Her er min sql:
DECLARE @modtager varchar(MAX)
DECLARE @bodydata1 varchar(MAX)
DECLARE @bodydata2 varchar(MAX)
DECLARE @bodydata3 varchar(MAX)
DECLARE @bodydata4 date
DECLARE @BodyText varchar(MAX)
SET @modtager = (SELECT Email FROM [Test].[dbo].[Medlemmer] WHERE Rolle = 'Formand')
SET @bodydata1 = (SELECT nFornavn FROM [Test].[dbo].[Medlemmer] WHERE DAY([Fodselsdag]) = DAY(GETDATE()+1) AND MONTH([Fodselsdag]) = MONTH(GETDATE()))
SET @bodydata2 = (SELECT nMellemnavn FROM [Test].[dbo].[Medlemmer] WHERE DAY([Fodselsdag]) = DAY(GETDATE()+1) AND MONTH([Fodselsdag]) = MONTH(GETDATE()))
SET @bodydata3 = (SELECT nEfternavn FROM [Test].[dbo].[Medlemmer] WHERE DAY([Fodselsdag]) = DAY(GETDATE()+1) AND MONTH([Fodselsdag]) = MONTH(GETDATE()))
SET @bodydata4 = (SELECT fodselsdag FROM [Test].[dbo].[Medlemmer] WHERE DAY([Fodselsdag]) = DAY(GETDATE()+1) AND MONTH([Fodselsdag]) = MONTH(GETDATE()))
SET @BodyText = + @bodydata1 +' '+ @bodydata2 +' '+ @bodydata3 +' har fødselsdag d. '+ CONVERT(date, @bodydata4) +' han bliver [N]år.' + CHAR(13)+CHAR(10) + N'Send John en hilsen.'
IF EXISTS (SELECT fodselsdag FROM [Test].[dbo].[Medlemmer] WHERE DAY([Fodselsdag]) = DAY(GETDATE()+1) AND MONTH([Fodselsdag]) = MONTH(GETDATE()))
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DBMail',
@body_format = 'TEXT',
@recipients = @modtager,
@subject = N'Fødselar',
@Body = @BodyText
ELSE
PRINT GETDATE()
GO
og her er den fejl jeg får:
Msg 402, Level 16, State 1, Line 14
The data types varchar and date are incompatible in the add operator.
Hvordan kommer jeg lige videre?