我正在使用Azure-SQL-database的read.jdbc函数从Databricks查询一个read.jdbc。
我在向数据库发送查询时没有问题,但是,我想在周日使用SET DATEFIRST 7;设置一周的开始,但我无法找到这样做的方法。
我已经阅读了这个问题的答案,我可以用其中的一些作为解决办法。但是,我想知道是否有一种从Databricks设置Databricks的方法(我不介意使用python或Scala来做)。
我的代码看起来是:
query <- "SET DATEFIRST 7;
(SELECT
DATEPART(yyyy,[calday]) * 100 + DATEPART(WEEK,[calday]) as calyearweek
FROM [dbo].[table]) out"
table <-
read.jdbc(
url = jdbcUrl,
database = jdbcDatabase ,
tableName = query,
user = user,
password = password
)如果我删除SET DATEFIRST 7;,就会得到查询结果。如果保留它,将收到以下错误:
jdbc中的错误: com.microsoft.sqlserver.jdbc.SQLServerException:关键字“SET”附近的不正确语法
发布于 2019-12-01 20:51:30
7是SQL中的默认值,因为您可以使用@@DATEFIRST函数进行确认。您不必将DATEFIRST设置为7。
SELECT @@DATEFIRST;如果需要为DATEFIRST设置不同的值,请尝试从存储过程内部设置它。
https://stackoverflow.com/questions/59129304
复制相似问题