如果只包含月份和年份,我如何存储信用卡的到期日期?
mysql中的日期字段接受以下格式:yyyy-mm-dd。使用该格式,没有一天的到期日期无效。
我是否使用varchar?这是否阻止我进行计算以确定卡何时到期以及什么不到期?
答案 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')
将导致2011-02-28今年。一般情况下,您希望信用卡的当月最后一天,因为这是它有效的实际最后一天。
答案 2 :(得分:5)
使用标准日期格式存储时,只需使用当月的第一天。拥有转换,比较等日期格式非常方便。