我搜索并搜索了 - 找到了主题变体,但没有真正的答案给我的问题。将DateTIme转换为日期/“int is not allowed”错误
我需要将datetime
的MAX
转换为date
,并将其插入到我创建的新表中。
这里是我的代码:
INSERT INTO [dbo].[OptOutEmails]([emailaddressid],[FirstOptOutDate], [LastOptOutDate], [bu_id], [brand_id])
SELECT [dbo].[DistinctEmailIds].[emailaddressid] as email
,[dbo].[emailaddresses_summary].[bu_id]
,[dbo].[emailaddresses_summary].[brand_id]
, CONVERT(datetime, max([emailaddresses_summary].[FirstOptOutDate])) AS FirstOptOutDate
, CONVERT(datetime, max([emailaddresses_summary].[LastOptOutDate])) AS LastOptOutDate
FROM [dbo].[DistinctEmailIds]
JOIN [dbo].[emailaddresses_summary]
ON [dbo].[DistinctEmailIds].[emailaddressid] = [dbo].[emailaddresses_summary].[emailaddressid]
WHERE [dbo].[emailaddresses_summary].[LastOptOutDate] IS NOT NULL
GROUP BY [dbo].[DistinctEmailIds].[emailaddressid],[dbo].[emailaddresses_summary].[bu_id],[dbo].[emailaddresses_summary].[brand_id];
GO
它需要进入这个表:
[emailaddressid] int not null PRIMARY KEY
, [FirstOptOutDate] datetime null
, [LastOptOutDate] datetime null
, [bu_id] int null
, [brand_id] int null
错误消息我得到:消息257,级别16,状态3,第56行
不允许从数据类型datetime到int的隐式转换。使用CONVERT函数来运行此查询。
我试过了我能想到的一切。在我的代码中产生的CONVERT
声明来自我认为可以解决此问题的字符串。没有任何工作。请帮忙?
嗨,大家好 - 非常感谢你!大声笑 - 我后来添加了列,什么是noob(noobs任何人???)错误!除此之外,我还是遇到了Clustered Index错误(我的数据库在Azure中 - 这是另一个重要的信息)。但是我不想让emailaddressid成为PK,所以我使用表中的AUTO_INCREMENT代码创建了ID ...'CREATE TABLE OptOutEmails ( ID INT IDENTITY(1,1)PRIMARY KEY ,[emailaddressid]诠释不为空 ,[FirstOptOutDate]日期时间空 ,[LastOptOutDate]日期时间空 ,[bu_id] INT空 ,[brand_id] int null ); GO'然后,它就像一个魅力!谢谢! – FirstLoser 2014-10-09 12:22:46