私はSpark SQLです。SQLサーバーからDatabricksにデータを移行しています。SPARK SQLです。 in SPARK以下の日付関数のsql。datediffは、spark sql。
DATEDIFF(YEAR、StartDate、EndDate)DATEDIFF(Month、StartDate、EndDate)DATEDIFF(Quarter、StartDate、EndDate)
前述したように、SparkSQLはDATEDIFF
をサポートしますが、数日間のみです。また、パラメータがSparkの逆の方法であるように見えるため、注意が必要です。
--SQL Server
DATEDIFF ( datepart , startdate , enddate )
--Spark
DATEDIFF ( enddate , startdate )
ただし、Sparkはmonths_between
の代わりに使用できるDATEDIFF( month ...
という同様の関数をサポートしています。この関数は小数も返すので、オプションでINT
にキャストして、
SELECT startDate, endDate,
DATEDIFF( endDate, startDate ) AS diff_days,
CAST( months_between( endDate, startDate ) AS INT ) AS diff_months
FROM yourTable
ORDER BY 1;
日付の年と四半期をそれぞれ決定するyear
とquarter
関数もあります。単に年を差し引くこともできますが、四半期はもっと注意が必要です。 「数学を行う」か、カレンダーテーブルを使用する必要があるかもしれません。