I have one table, I want to sort by years. However, we have a problem.
The column is in text format. Because it is in the years before Christ.
First I need to list the years before Christ and then the present years.
Thank you for your help in this matter.
Table: date_events
| event_year | event_title |
|---|---|
| B.C 405 | example |
| B.C 406 | example |
| 2022 | example |
>Solution :
You can order by the column event_year, but replacing 'B.C ' by a minus sign '-', and converting it to a signed:
select *
from date_events
order by cast(replace(event_year, 'B.C ', '-') as signed);
Output:
| event_year | event_title |
|---|---|
| B.C 406 | example |
| B.C 405 | example |
| 2022 | example |