sql - 如何将当前日期插入电子邮件 SQL Server 的主题行
问题描述
我有一个存储过程,它生成一个特定的表,我需要用当前日期的特定主题行通过电子邮件发送我的电子邮件列表。我使用了 GETDATE() 函数,但出现错误。下面是我的代码:
if exists (select * from #Notify)
begin
declare
@TableHtml varchar(max);
exec GetTableHtml #Notify, @TableHtml = @TableHtml output;
declare
@FromName varchar(128) = 'AB',
@FromEmail varchar(128) = 'ab@xy.com',
@ToEmailListName varchar(max) = 'SomeList',
@SubjectTxt varchar(max) = 'Some text' + cast(GETDATE() as date),
@BodyTxt varchar(max) = 'Body content:<br><br>' + @TableHtml + '
<br><br>Thanks.';
exec StartSendEmail
@FromName = @FromName,
@FromEmail = @FromEmail,
@ToEmailListName = @ToEmailListName,
@SubjectTxt = @SubjectTxt,
@BodyTxt = @BodyTxt;
end
解决方案
这是因为您需要将日期转换为,varchar
以便将+
其视为连接,而不是添加,或者CONCAT()
如果您使用的是 SQL Server 2012 及更高版本,请使用该功能。
@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
和其他数据类型。这就是为什么......SELECT GETDATE() + 1
不将数字 1 添加到日期的末尾,它实际上增加了一天。(虽然不要使用这个,使用DATEADD
)
推荐阅读
- jupyter-notebook - Pycharm:更改导入模块的代码后如何刷新Jupyter
- python - 更新机器人而不关闭它不和谐 python
- java - Arrays-Java,与数组相同位置的元素之和
- java - Java 11 HttpClient 通过代理对 HTTPS 资源的请求
- python - for循环中字典的赋值
- macos - 带有 iconv 选项的 rsync 消息
- reactjs - 反应:当父母的价值改变时,孩子不会更新
- android - 将 Jetpack Compose State 委托语法与数据类一起使用
- c++ - boost::property_tree C++ JSON Writer,不需要的数字格式
- python - 在其他索引中添加一个新列