数据桶中的To_char函数

时间:2018-05-09 10:31:09

标签: databricks

我在数据库中使用sql作为笔记本的语言。 想要从给定的日期获得星期几。 为此,我使用了to_char(日期,' fmday')。获取错误作为函数未在数据库中注册为临时或永久。有没有办法通过其他方式获得日期的名称。 日期格式为yyyymmdd

3 个答案:

答案 0 :(得分:3)

您收到该错误,因为to_char不是SparkSQL函数。您可以在此处查看ScalaDocs中的函数列表:https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.functions $

如果您的日期是DateType,则可以在SparkSQL中执行dayofweek(date)

答案 1 :(得分:0)

我有办法得到星期几的名称,如下所示

DATE_FORMAT(TO_DATE( '20170821', 'YYYYMMDD'), 'EEEE')

现在我想传递一个整数数据类型的列,但是当我将它传递给查询时将null作为输出。请有人帮忙

答案 2 :(得分:0)

  

获取当天的名字

由于您想要获取当天的名称,您可以使用带有参数date_format的{​​{1}}函数来获取日期名称,例如星期一。如果你想传入一个整数(例如1到7之间的数字),那么你可以只编写一个'EEEE'语句,如:

CASE

注意我已将%sql SELECT dayofweek( CAST( '2018-12-31' AS DATE ) ) AS d, date_format( CAST( '2018-12-31' AS DATE ), 'EEEE' ) AS dayname, CASE dayofweek( CAST( '2018-12-31' AS DATE ) ) WHEN 1 THEN 'Monday' WHEN 2 THEN 'Tuesday' WHEN 3 THEN 'Wednesday' WHEN 4 THEN 'Thursday' WHEN 5 THEN 'Friday' WHEN 6 THEN 'Saturday' WHEN 7 THEN 'Sunday' ELSE 'Unknown' END AS caseTest 编码为从第1天 - 星期一开始一周,这与CASE默认值不同;这可能是这样做的一个原因,即你想要一个不同的默认值。

我的结果:

mime-types