我怎样才能获得12月1日的下一个日期?

时间:2015-11-25 13:11:25

标签: mysql sql

我的MySQL表中有一个日期字段,我希望在12月1日之前获得所有行。因此,例如,如果我今天(2015年11月)运行查询,我应该返回的行将是2015年12月1日之前的任何日期。如果我在2015年12月1日之后但在2016年12月1日之前运行查询,它应该返回所有行2016年12月1日之前的日期。

很抱歉由于缺少代码,我真的不知道从哪里开始!

3 个答案:

答案 0 :(得分:2)

我根据当前月份创建限制日期(使用now()获取当前日期)。如果当前月份为12,则限制为明年的1-12(get_curr_date () { # get unix time DATE=$(date +%s) echo "DATE_CURR : "$DATE } conv_utime_hread () { # convert unix time to human readable format DATE_HREAD=$(date -d @$DATE +%Y%m%d_%H%M%S) echo "DATE_HREAD : "$DATE_HREAD } ),否则为当前年份。

year(now()+1

答案 1 :(得分:1)

我认为你应该使用这样的东西:

SELECT      *
FROM        Table T
WHERE       Some_Date < CASE
                            WHEN MONTH(CURDATE()) < 12 THEN STR_TO_DATE('01, 12, ' + YEAR(CURDATE())),'%d,%m,%Y')
                            ELSE STR_TO_DATE('01, 12, ' + YEAR(CURDATE() + 1)),'%d,%m,%Y')
                        END 

免责声明:我没有mysql,所以我无法测试它。

答案 2 :(得分:0)

我也管理了我自己的解决方案

SELECT *
FROM table
WHERE date < DATE_ADD( MAKEDATE( IF( MONTH( CURRENT_DATE() ) < 12, YEAR( CURRENT_DATE() ), YEAR( CURRENT_DATE() + INTERVAL 1 YEAR ) ), 1), INTERVAL + 11 MONTH )