3

想要这样做但反过来。

date的 s 是这种格式YYYY-MM-DDThh:mm:ss,我想要两列YYYY-MM-DDhh:mm如果我愿意,我可以连接某些查询。

使用时出现错误convert();我认为 Spark SQL 目前不支持此功能。

当我使用date(datetime)ortimestamp(datetime)时,我会返回所有空值。然而,minute(datetime)hour(datetime)工作。

目前,使用这个

concat(date,' ', hour,':', (case when minute < 10 then concat('0',minute) else minute end)) as DateTime
from (select OtherDateOnlyColumn as date, minute(datetime) as minute, hour(datetime) as hour from ...)

这显然效率不高。

4

2 回答 2

1

我刚刚在这个查询上尝试了 date() 并且它有效:

select date(datetime) from df

也许您表中的日期是字符串类型;您应该检查列的数据类型

DESCRIBE your_table

如果日期是字符串类型,您可以使用Spark SQLcast(datetime as timestamp) as newTimestamp中提供的日期时间将日期时间转换回时间戳类型并使用其中的变体。date_format(newTimestamp, 'YYYY-MM-dd hh:mm')

于 2016-08-23T22:25:41.503 回答
0

简单的回答。在 Spark SQL 中使用日期函数。

ISO 8601 日期格式示例:

2017-05-12T00:00:00.000Z

select date(datetime) as parsed_date from table
于 2019-12-12T09:44:48.080 回答