作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个系统,每月根据用户注册的时间计算数据。
我将每天运行一个 cron 作业来获取所有需要计算信息的用户,我想获取每天的所有用户。
如果用户都注册了类似2011-01-01
一个简单的查询会发现(如果昨天是该期间的末尾):
SELECT `user_id`
FROM `table`
WHERE DAY( `date_created` ) = DAY( DATE_SUB( CURRENT_DATE(), INTERVAL 1 DAY ) )
如果他们在 2011-03-31
上注册,情况会变得更加复杂
我可以使用什么查询来确保在 2011-04-30
找到它们?
我猜是这样的
SELECT `user_id`
FROM `table`
WHERE
DAY( `date_created` ) = DAY( DATE_SUB( CURRENT_DATE(), INTERVAL 1 DAY ) )
OR DAY( DATE_SUB( CURRENT_DATE(), INTERVAL 1 DAY ) ) < DAY( `date_created` )
AND LAST_DAY( DATE_SUB( CURRENT_DATE(), INTERVAL 1 DAY ) ) = DATE_SUB( CURRENT_DATE(), INTERVAL 1 DAY )
这似乎不是很有效,我也不知道它是否有效(尽管我怀疑它有效)。
有试过的方法吗?或者有更好的方法吗?
最佳答案
您需要做的就是检查是否是本月的第一天,如果是则进行>=
比较,否则进行=
比较。
WHERE IF(DAY(CURRENT_DATE()) = 1,
DAY( `date_created` ) >= DAY(DATE_SUB( CURRENT_DATE(), INTERVAL 1 DAY )),
DAY( `date_created` ) = DAY(DATE_SUB( CURRENT_DATE(), INTERVAL 1 DAY ))
)
因此在 3 月 1 日,它将更新 28 日或之后(非闰年)注册的用户。
关于MySQL - 每月查找同一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6674206/
我有一个应用程序,用户在 edittext 中输入数据并按下保存按钮。 通过按“保存”,我将用户数据(在一列中)和当前日期(在另一列中)保存在一个文件中。 然后,我按下另一个按钮并制作绘图(使用图表引
我是一名优秀的程序员,十分优秀!