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

时间:2011-04-17 19:15:40

标签: mysql date

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

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

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

3 个答案:

答案 0 :(得分:11)

2014年1月:

2014-01-00

对于未定义的月份和日期,通常使用00。来自MySQL reference manual

  

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

  mysql> SELECT DAYOFMONTH('2001-11-00'), MONTH('2005-00-00');
      -> 0, 0

以及稍后的DATE_FORMAT手册:

  

月和日的范围   由于这个原因,说明符从零开始   MySQL允许存储的事实   不完整的日期,例如'2014-00-00'。

答案 1 :(得分:10)

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

例如:

SELECT LAST_DAY('2011-02-01')

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

答案 2 :(得分:5)

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