2017-07-29 66 views
0

我很新的SQL。我的马数据库中有两列 - 日期和马名。日期是赛马的时间和马匹的名字。我想要第三列来计算前一轮和这一轮之间的日期差异。日期差异如果功能在SQL

任何帮助将不胜感激。

+2

标记您的问题与您正在使用的数据库。 –

回答

0

日期函数在SQL中有所不同。一种常见的方法就是减法。

要获取上一个日期,可以使用ANSI标准lag()函数(不适用于所有数据库)。

查询看起来是这样的:

select h.*, 
     (racedate - lag(racedate) over (partition by horse order by racedate) as daysSinceLastRace 
from horses h; 

这将是NULL的第一场比赛。

(注:有些数据库在天使用“DATEDIFF()”函数的差异,而不是减法。)

+0

非常感谢! – Zipping2010

+0

谢谢。完美的作品。我如何计算在某种准备中的马匹运行?例如,如果马在90天内没有运行,它将会是0,然后下一轮运行的是1,然后是下一轮2,直到它再次发生咒语并且计数重置。干杯。 – Zipping2010

+0

@ Zipping2010。 。 。如果您还有其他问题,请将其作为样品数据和预期结果的问题。 –