如果只包含月份和年份,我如何存储信用卡的到期日期?

Moh*_*mad 10 mysql date

如果只包含月份和年份,我如何存储信用卡的到期日期?

mysql中的日期字段接受以下格式:yyyy-mm-dd.使用该格式,没有一天的到期日期无效.

我是否使用varchar?这不妨碍我进行计算以确定卡何时到期以及什么不到期?

Jas*_*n S 11

2014年1月:

2014-01-00
Run Code Online (Sandbox Code Playgroud)

对于未定义的月份和日期,使用00是很常见的.从MySQL参考手册:

某些日期函数可以使用"零"日期或不完整日期,例如"2001-11-00",而其他日期函数则不能.提取日期部分的函数通常使用不完整的日期,因此当您可能期望非零值时可以返回0.例如:

  mysql> SELECT DAYOFMONTH('2001-11-00'), MONTH('2005-00-00');
      -> 0, 0
Run Code Online (Sandbox Code Playgroud)

以及后面的手册DATE_FORMAT:

由于MySQL允许存储不完整的日期(例如'2014-00-00'),因此月份和日期说明符的范围从零开始.


pic*_*ypg 10

您可以随时使用该LAST_DAY功能插入该月的最后一天.

例如:

SELECT LAST_DAY('2011-02-01')

将导致2011-02-28今年.一般情况下,您希望信用卡的当月最后一天,因为这是它有效的实际最后一天.


Lar*_*abe 5

只需使用标准日期格式存储的月份的第一天.拥有转换,比较等日期格式非常方便.