如何解决在Spark SQL中使用字符串变量作为日期过滤观察结果
我正在寻找使用where子句将字符串变量过滤为日期的正确语法。例如,我想在2020年7月1日之后保留pol_expi_dt的记录。 pol_expi_dt的格式为“ 2020-12-01 00:00:00”。 此Spark Sql查询的正确格式是什么?
以下代码返回0个观察值。所以我想我一定做错了
SELECT *
FROM `cloud01_propertylocationmerge`.`exposure_new`
where cast(pol_expi_dt as date) >= '2020-07-01'
解决方法
由于您的'2020-07-01'
是一个字符串,而pol_expi_dt
是一个时间戳,因此应该以另一种格式进行转换。例如,当您投射列时,
date_format(pol_expi_dt,'yyyy-MM-dd') >= '2020-07-01'
或将两者都强制转换为日期格式。
date(pol_expi_dt) >= date('2020-07-01')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。