文档首页/
MapReduce服务 MRS/
组件操作指南(普通版)/
使用Spark2x(MRS 3.x及之后版本)/
Spark2x常见问题/
SQL和DataFrame/
日期类型的字段作为过滤条件时匹配'2016-6-30'时没有查询结果
更新时间:2022-12-13 GMT+08:00
日期类型的字段作为过滤条件时匹配'2016-6-30'时没有查询结果
问题
为什么日期类型的字段作为过滤条件时匹配'2016-6-30'时没有查询结果,匹配'2016-06-30'时有查询结果。
如下图所示:“select count(*)from trxfintrx2012 a where trx_dte_par='2016-6-30'”,其中trx_dte_par为日期类型的字段,当过滤条件为“where trx_dte_par='2016-6-30'”时没有查询结果,当过滤条件为“where trx_dte_par='2016-06-30'”时有查询结果。
图1 示例
回答
在Spark SQL查询语句中,当查询条件中含有日期格式的字符串时,Spark SQL不会对它做日期格式的检查,就是把它当做普通的字符串进行匹配。以上面的例子为例,如果数据格式为"yyyy-mm-dd",那么字符串'2016-6-30'就是不正确的数据格式。
父主题: SQL和DataFrame