我有以下日期:
$params['ExpirationMonth'];
$params['ExpirationYear'];
我需要一些关于如何在mysql数据库中只存储月份和年份的建议。经过一些研究,我发现了3种方法。
1)我可以使用1st作为日期,可以与月份和年份一起存储。
2)我可以使用date
数据类型而不是varchar
数据类型,而只能存储月份和年份。
3)我可以将两个列作为整数存储为两个单独的列。即一个月和一年。
哪种方式更好?需要一些建议。感谢。
答案 0 :(得分:2)
1)我可以使用1st作为日期,可以与月份和年份一起存储。
此选项更好,就像有任何计算或排序需要一样 要做到这一点,它将是有用和方便的。
2)我可以使用varchar数据类型而不是使用日期,而只能存储月份和年份。
3)我可以将两个列作为整数存储为两个单独的列。即一个月和一年。
对于上面两个选项都很好,因为它比较需要更少的空间 日期或时间戳。但是你可以用这个来进行calucation或orderby。对于 您需要通过“str_to_date”函数将其转换为日期的计算
我希望这会以某种方式帮助你。
答案 1 :(得分:2)
您可以使用date
列,请注意:
0512
表示有效期至2012年5月31日。优点:
示例查询:
-- expires in 2012
WHERE expires >= '2012-01-01' AND expires < '2012-01-01' + INTERVAL 1 YEAR
-- expires in Dec 2012
WHERE expires >= '2012-12-01' AND expires < '2012-12-01' + INTERVAL 1 MONTH
答案 2 :(得分:1)
存储为UNIX。突然之间需要添加一些东西,没有任何问题可以让任何过时的东西
答案 3 :(得分:1)
信用卡到期月/年意味着此卡有效期至本月/年结束。
作为可比日期存储的最佳方式,您应该在本月的最后一天
STR_TO_DATE( CONCAT( '01,', @Month, ',', @Year, '%d,%m,%Y )
+ INTERVAL 1 MONTH
- INTERVAL 1 DAY
答案 4 :(得分:-1)
您始终可以像 YYYYDD 一样将其存储为整数: 因此,对于 2021 年 5 月,您可以存储这个整数:202105