В каком формате хранить данные с двумя годами в одной ячейке?

У меня есть колонка под названием год.

|year     | 
-----------
|2015/2016|
|2016/2017|

Я сохранил даты как varcharОднако, когда я упорядочиваю запрос по году, он не обязательно упорядочивает их по порядку, я думаю, это связано с тем, как я хранил данные и используемый формат.

В каком формате я должен хранить этот год? Мне нужно будет оставить его как "2015/2016" и не могу их разделить.

2 ответа

Краткий ответ: никогда не храните два значения в одном столбце. Длинный ответ - https://en.wikipedia.org/wiki/Database_normalization

Что касается типов, есть TIMESTAMP, обычно используемый для даты и времени. VARCHAR также приемлем, но таким образом вы пропускаете некоторые специальные функции с запросами.

UPD: у вас нет "держать как"2015/2016"", потому что это задача уровня представления - ваш пользовательский интерфейс. Пользователям все равно, как вы храните данные.

Это были необработанные данные, предоставленные мне, и я находился в процессе нормализации данных:

Я принял к сведению комментарии и согласен с тем, что лучшим вариантом будет varchar, а даты разбиты на две колонки -

--- | yearStart | --- | КОНЕЦ |
--- | 2015 | -------- | 2016 |
--- | 2016 || ------- | 2017 |
--- | 2017 | -------- | 2018 |

и т. д.

Затем я мог бы сделать заказ по заявке, используя начало года, что решит мою проблему!

Другие вопросы по тегам