SQL*_*irl 9 datediff apache-spark-sql databricks
我是Spark SQL的新手。我们正在将数据从SQL Server迁移到Databricks。我正在使用SPARK SQL。您能否建议以下日期函数在SPARK sql中实现以下功能?我可以看到datediff在spark sql中仅给出几天。
DATEDIFF(年,StartDate,EndDate)DATEDIFF(月,StartDate,EndDate)DATEDIFF(四分之一,StartDate,EndDate)
正如您提到的,SparkSQL确实支持,DATEDIFF但仅持续数天。我也要小心,因为参数似乎与Spark相反,即
--SQL Server
DATEDIFF ( datepart , startdate , enddate )
--Spark
DATEDIFF ( enddate , startdate )
Run Code Online (Sandbox Code Playgroud)
但是,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;
Run Code Online (Sandbox Code Playgroud)
还有year和分别quarter用于确定日期的年份和季度的功能。您可以简单地减去年份,但是季度会更加棘手。可能是您必须“做数学”或最终使用日历表。
| 归档时间: |
|
| 查看次数: |
11564 次 |
| 最近记录: |