【问题标题】:Datatype for store month and year only in the mysql table? [duplicate]仅在 mysql 表中存储月份和年份的数据类型? [复制]
【发布时间】:2016-12-12 11:22:25
【问题描述】:

如何只在mysql表中存储月份和年份,哪种数据类型更可取?

需要的输出:2016 年 12 月

【问题讨论】:

  • 你想知道将日期存储到mysql的方法吗?
  • 代替 mm-yyyy 这个 ??
  • 现在,我存储为 varchar 和 12/2016 如何显示为 2016 年 12 月
  • 是的,我问的是存储数据类型?请任何人帮助。 . .

标签: mysql database-design


【解决方案1】:

您似乎已存储为 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)

【讨论】:

    【解决方案2】:

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

    通过这种方式,您可以利用本地日期数据类型,因此您可以通过查询进行实际的日期数学运算,并且 MySQL 很乐意按照您的意愿格式化输出。

    【讨论】:

      猜你喜欢
      • 2012-02-26
      • 2014-08-07
      • 2012-12-07
      • 2019-04-25
      • 2016-08-30
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多