【发布时间】:2017-07-25 19:28:24
【问题描述】:
需要连接两个表。一个表有一个“datekey”列,它是来自 dimdate 表的 YYYYMMDD 格式的 int,另一个表有一个“CreatedOn”列,它是一个日期时间。我最初将日期时间转换为日期,因为这是 group by 似乎正常工作的唯一方式。由于“on d.datekey = BBB.datekey”行,我不断收到错误“操作数类型冲突:日期与 int 不兼容”。有什么简单的解决方法的建议吗?
select
distinct CONVERT (date,convert(char(8),d.datekey )) as Date
, isnull(BBB.reccount,0) DimAccount
from dimdate d
left outer join(
Select
cast(createdon as date) datekey
, count(*) RecCount
from DimAccount
group by cast(createdon as date)
)BBB on d.datekey = BBB.datekey
where d.datekey like '2017%'
group by d.datekey
,BBB.RecCount
having MAX(DATEDIFF(dd, CONVERT(date, CAST(d.Datekey AS CHAR(8)), 101), GETDATE())) > -1
order by date desc
【问题讨论】:
-
你试过转换成 varchar 再转换成 int 吗?
-
dev.mysql.com/doc/refman/5.7/en/… google 是你的朋友(还有 docs)
-
@AlekhyaVemavarapu 仍然为查询中的所有日期返回 0,我不知道为什么
-
@DanBracuk sql server,如果这就是你的意思,在 Visual Studio 中
-
dimDate 表中的其他字段是什么?
标签: sql sql-server datetime int