Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将当前日期插入电子邮件SQL Server的主题行_Sql_Sql Server_Date_Email_Getdate - Fatal编程技术网

如何将当前日期插入电子邮件SQL Server的主题行

如何将当前日期插入电子邮件SQL Server的主题行,sql,sql-server,date,email,getdate,Sql,Sql Server,Date,Email,Getdate,我有一个存储过程,它生成一个特定的表,我需要用电子邮件将我的电子邮件列表与当前日期的特定主题行一起发送。我使用了GETDATE函数,但出现了一个错误。下面是我的代码: 我得到的错误是:这是因为您需要将日期转换为varchar,以便将+视为串联,而不是加法,或者如果您使用的是SQL Server 2012以后的版本,则使用CONCAT函数 @SubjectTxt varchar(max) = 'Some text' + cast(cast(GETDATE() as date) as varchar

我有一个存储过程,它生成一个特定的表,我需要用电子邮件将我的电子邮件列表与当前日期的特定主题行一起发送。我使用了GETDATE函数,但出现了一个错误。下面是我的代码:


我得到的错误是:

这是因为您需要将日期转换为varchar,以便将+视为串联,而不是加法,或者如果您使用的是SQL Server 2012以后的版本,则使用CONCAT函数

@SubjectTxt varchar(max) = 'Some text' + cast(cast(GETDATE() as date) as varchar(64)),
或者更简单地说

@SubjectTxt varchar(max) = 'Some text' + convert(varchar(10),GETDATE(),101),

这也适用于INT、DECIMAL和其他数据类型。这就是为什么。。。选择GETDATE+1不会将数字1添加到日期的末尾,它实际上会添加一天。但不要使用此选项,请使用DATEADD

,因为您需要将日期转换为varchar,以便将+视为串联,而不是加法,或者如果您使用的是SQL Server 2012以后的版本,请使用CONCAT函数

@SubjectTxt varchar(max) = 'Some text' + cast(cast(GETDATE() as date) as varchar(64)),
或者更简单地说

@SubjectTxt varchar(max) = 'Some text' + convert(varchar(10),GETDATE(),101),
这也适用于INT、DECIMAL和其他数据类型。这就是为什么。。。选择GETDATE+1不会将数字1添加到日期的末尾,它实际上会添加一天。但不要使用此选项,请使用DATEADD

您可以使用CONCAT:

您可以使用CONCAT:

DECLARE @s VARCHAR(max)
SET @s = 'Data for '+CONVERT(VARCHAR(12),GETDATE(),107)


EXEC msdb.dbo.sp_send_dbmail 
@recipients=@email,
@body= @msg,
@body_format = 'HTML',
@subject = @s
@profile_name = 'testprofile'