对格式不同的日期进行排序 - SQL

时间:2021-06-23 18:57:09

标签: sql oracle

我有下表,我想按升序对其进行排序。下面的命令可以工作,除非我的所有日​​期格式都正确。它们中的大多数采用 YYYY-MM-DD 格式,少数采用 DD/MM/YYYY 格式。我将如何对它们进行排序?我可以将它们全部转换为标准格式并进行排序吗?

按销售数据 desc 排序

<头>
ID_NUMBER 销售数据 SALEAMOUNT
1 2020-09-07 47,000
2 2020-03-25 51,470
3 2021-06-12 32,000
4 08/11/2019 21,000
5 2018-10-12 37,560

1 个答案:

答案 0 :(得分:2)

可以使用:

order by (case when saledata like '%/%/%'
               then to_date(saledata, 'MM/DD/YYYY')
               else to_date(saledata, 'YYYY-MM-DD')
          end)

但是你应该修复数据模型!不要将日期存储为字符串。