我的表格包含两列,expMonth
和expYear
。我需要SELECT *
日期早于NOW()
。我的问题是,我甚至不知道如何在 SQL 中解决这个问题,因为我只有一个月和一年。此外,我需要找到给定月份的最大天数,然后根据该天数,将信息拼凑起来创建日期,然后将该日期与NOW()
进行比较。从我在网上看到的情况来看,你不能真正在一个月和一年中在 SQL 中创建一个日期。
示例:
expMonth = 09 , expYear = 16.
findNumberOfDays(expMonth)
createDate(numberOfDaysforMonth,expMonth,expYear)`
SELECT * FROM Stacks WHERE createDate < NOW();
这只是一些逻辑/伪代码。
有没有人对如何解决这个问题有任何建议?
答案 0 :(得分:0)
where str_to_date(concat(exp_year, '-', expmonth), '%Y-%m') < now()
MySQL可以处理部分日期。但是,如果你真的想要,你可以使用
str_to_date(concat(exp_year, '-', expmonth, '-01'), '%Y-%m-%d') < now()
如果您认为更清楚。
答案 1 :(得分:0)
其中str_to_date(concat(exp_year,&#39; - &#39;,expmonth),&#39;%Y-%m-01&#39;)&lt;现在()
如果您需要将日期作为该月的最后一天:
其中last_day(str_to_date(concat(exp_year,&#39; - &#39;,expmonth),&#39;%Y-%m-01&#39;))&lt;现在()