MySQL-如何在一列中存储多种日期类型(季度,月份,年份)

时间:2019-01-14 17:28:10

标签: mysql database date

我有一些用户上传的数据,需要根据用户选择的时间段对其进行存储和排序。该期间应仅支持月年或季度年,别无其他,类似于以下内容:

    +----+---------+-------+
    | 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,在这种情况下,只要用户选择2018年第一季度,就将使用该数据类型,但是我无法查找此类数据类型。我可能可以使用两列来支持季度日期,另一列用于月份,而最后一年用于年份,但这并不是一个好方法。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

mysql提供了大量用于管理日期的函数...因此您可以简单地归档参考日期并使用mysql函数。

例如使用实际日期作为日期

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

通过这种方式,您可以避免存储计算范围..

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