MySQL - Как хранить несколько типов дат (квартал, месяц, год) в одном столбце - PullRequest
0 голосов
/ 14 января 2019

У меня есть некоторые данные, которые пользователь загружает, и они должны быть сохранены и отсортированы в зависимости от периода, выбранного пользователем. Период должен поддерживать только месяц-год или квартал-год, ничто иное, как показано ниже:

    +----+---------+-------+
    | id | period  | data  |
    +----+---------+-------+
    |  1 | 2018-09 | test1 |
    |  2 | 2019-01 | test2 |
    |  3 | 2018-Q3 | test3 |
    |  4 | 2017-Q4 | test4 |
    +----+---------+-------+

Сначала я искал тип данных, который поддерживает диапазоны дат, например 2018-01-01 - 2018-03-31, который в этом случае будет использоваться всякий раз, когда пользователь выбирает Q1 2018, однако я не смог найти такой тип данных. Я мог бы использовать два столбца для поддержки квартальных дат, еще один для месяца и последний для года, но это не очень хороший подход.

Есть идеи?

1 Ответ

0 голосов
/ 14 января 2019

mysql предоставляет широкий набор функций для управления датами ... так что вы можете просто заархивировать контрольную дату и использовать функции mysql.

например, с использованием актуальной даты в качестве даты

 select quarter(curdate ()), month(curdate ()), year(curdate())

таким образом вы можете избежать сохранения рассчитанного диапазона ..

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...