如何仅在mysql表中存储月份和年份以及哪种数据类型更合适?
需要的产出:2016年12月
答案 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很乐意根据您的需要格式化输出。