我正在开发一个包含过去事件的网站。对于某些事件,整个日期是已知的,对于一年中的某个月份,对于某些年份,仅是已知的。表事件看起来像:
id
content
date -> YYYY-MM-DD
year -> true, if only year is known, otherwise false
monthandyear -> true if only year and month is known, otherwise false
我想按以下顺序列出表的内容:
此问题的最佳解决方案是什么?
我正在使用DQL:
SELECT p FROM App:Event p ORDER BY p.date DESC ...
您可以使用条件逻辑。假设date
是字符串:
order by left(date, 4),
(case when not year and not yearmonth then 1 else 2 end),
left(date, 7),
(case when not yearmonth then 1 else 2 end)
date