无法正确按日期排序

Posted

技术标签:

【中文标题】无法正确按日期排序【英文标题】:Can't sort by date correctly 【发布时间】:2019-11-08 17:02:05 【问题描述】:

不是按天排序,而是按月排序。

我试过str_to_date,但在spark sql中没有,并尝试在order by中重复date_format但没有成功

【问题讨论】:

【参考方案1】:

试试下面的代码

import org.apache.spark.sql.functions._

spark.sql("""
  SELECT TO_DATE(CAST(UNIX_TIMESTAMP(ttr.created_at, 'dd/MM/yyyy') AS TIMESTAMP)) AS data from dl_wallet.tb_transaction as ttr order by data desc """
).show()

【讨论】:

【参考方案2】:

当您将日期格式化为字符串时,排序是按字符串顺序完成的。一种解决方案是更改格式,使年份先出现,然后是月份,然后是日期。更好的方法是按日期列 (ttr.created_at) 而不是格式化字符串。

【讨论】:

好的,保持格式不变,但将排序改为ORDER BY ttr.created_at

以上是关于无法正确按日期排序的主要内容,如果未能解决你的问题,请参考以下文章

如何以正确的顺序链接查询集,而不是按日期排序,按foreignKey排序?

按日期时间格式化为 dd.MM.yyyy 的 SQL 顺序不正确

UITableView 以排序顺序划分,未正确划分

使用FormatDate的排序行为不正确

freemarker 按日期排序;需要更改日期格式

NSSortDescriptor 未正确排序整数