开发者

How do I get Timestamp minus 6 weeks in MySQL?

I have a field named timestamp. This is the last time a member was logged in. I am looking to include a where cla开发者_StackOverflow中文版use in a query for something like

WHERE timestamp > todays date - 6 weeks

How would I do this? I am trying to only include users that have logged in in the last 6 weeks.

Thanks


I find this syntax more readable than date_sub, but either way works.

WHERE timestamp >= NOW() - INTERVAL 6 WEEK

If you want to go by "Today" (midnight) instead "now" (current time), you would use this

WHERE timestamp >= DATE(NOW()) - INTERVAL 6 WEEK


where column>=date_sub(now(), interval 6 week)


This link demonstrates how you might acquire a timestamp of yesterday using the format DATE_ADD(CURDATE(), INTERVAL -1 DAY), therefore your query would probably be:

WHERE timestamp > DATE_ADD(CURDATE(), INTERVAL -42 DAY)


You can use between and now():

select somevalue 
from yourtable
where yourtimestamp between now() - interval 1 day and now()


for TIMESTAMP there is a TIMESTAMPADD() function

SELECT TIMESTAMPADD(WEEK, -6, CURRENT_TIMESTAMP)

this will return the timestemp of 6 weeks ago

or in the case like the question

SELECT * FROM users
WHERE lastlogin > TIMESTAMPADD(WEEK, -6, CURRENT_TIMESTAMP)


Any luck yet. Have you tried:

>= DATE_SUB(NOW(), INTERVAL 6 WEEK) 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜