2017-07-29 61 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。 。 。如果您還有其他問題,請將其作爲樣品數據和預期結果的問題。 –