如何查询从BIGINT格式转换的表中的最新日期?

时间:2019-02-25 18:09:05

标签: sql-server

我有一个表,其中按日期包含每个用户的一个或多个条目。日期字段的格式为BIGINT格式。我可以使用“ DATEADD(SS,CONVERT(BIGINT,Create_Date__c),'19700101')”将日期转换为可读格式,但是,我还只需要检索每个用户的最新日期。我发现的所有内容都表明您无法将MAX函数与DATEADD函数一起使用。还有其他命令吗?我正在使用SQL Server 17.9.1。

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]列名放在方括号中,因为它们是保留字。