仅在mysql表中存储月份和年份的数据类型?

时间:2016-12-12 11:22:25

标签: mysql database-design

如何仅在mysql表中存储月份和年份以及哪种数据类型更合适?

需要的产出:2016年12月

2 个答案:

答案 0 :(得分:0)

你似乎存储为mm / yyyy所以要显示你需要lpad(以确保你总是使用7个字符,拆分,计算月份名称然后连续

set @dt = '12/2016';

select concat(
            (case when substring(lpad(@dt,7,'0'),1,2) = 12 then 'Dec' 
                when substring(lpad(@dt,7,'0'),1,2) = 1 then 'Jan'
            end ),'/',
        substring(lpad(@dt,7,'0'),4,4))     formatted

我让你把所有月份都添加到案例陈述中。

结果

+-----------+
| formatted |
+-----------+
| Dec/2016  |
+-----------+
1 row in set (0.00 sec)

答案 1 :(得分:0)

我将其存储为您最喜欢的date and time type,然后使用DATE_FORMAT()操作输出。您还可以在应用程序代码中格式化输出,而不是作为MySQL查询的一部分。

这样您就可以利用本机日期数据类型,因此您可以通过查询进行实际日期数学运算,而MySQL很乐意根据您的需要格式化输出。