我有一个表,其中按日期包含每个用户的一个或多个条目。日期字段的格式为BIGINT格式。我可以使用“ DATEADD(SS,CONVERT(BIGINT,Create_Date__c),'19700101')”将日期转换为可读格式,但是,我还只需要检索每个用户的最新日期。我发现的所有内容都表明您无法将MAX函数与DATEADD函数一起使用。还有其他命令吗?我正在使用SQL Server 17.9.1。
答案 0 :(得分:1)
这些日期是unix日期...编码为自1970年1月1日以来的秒数。您确定不需要将它们转换为日期以找出最新的日期。您可以选择最近的日期和用户作为虚拟表的键...然后将其加入到原始表中:
select
dateadd( ss, orig.[date], '19700101' ) as realDate,
--> other stuff you need here...
from
(
select
[user],
max( Create_Date__c ) [date]
from
someTable
group by
[user]
) as recent
inner join
someTable orig
on
recent.[user] = orig.[user]
and
recent.[date] = orig.Create_Date__c
顺便说一句,如果您想知道,我将[user]和[date]列名放在方括号中,因为它们是保留字。