开发者

How to get dates which are between last monday till current day?

开发者 https://www.devze.com 2023-02-22 09:42 出处:网络
I am having dates in my database. My data开发者_StackOverflowbase is in MySQL. I want to fetch dates from my database which provides me dates from last monday till current day.

I am having dates in my database.

My data开发者_StackOverflowbase is in MySQL.

I want to fetch dates from my database which provides me dates from last monday till current day.

How can I do that?


You first have to work out how many days ago last monday was, using the DAYOFWEEK function, then subtract that from the current date -

SELECT * from table
WHERE date >= DATE_SUB(CURDATE(),INTERVAL MOD(DAYOFWEEK(CURDATE())-2,7) DAY)
AND   date <= DATE_ADD(CURDATE(), INTERVAL MOD(7 - (DAYOFWEEK(CURDATE()) - 1), 7) DAY)

I'm not 100% sure about the +/- numbers here, you should be able to work it out from this though

EDIT: If this will only ever be run on the sunday at the end of the period, there is a much simpler version -

SELECT * from table
WHERE date >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
AND   date <= CURDATE()


try this one

select * from table
WHERE date >date_sub(curdate(), interval WEEKDAY(curdate()) day) ;


You could always use the between function in your queries...

SELECT *
FROM orders
WHERE order_date between to_date ('2003/01/01', 'yyyy/mm/dd')
AND to_date ('2003/12/31', 'yyyy/mm/dd');

http://www.techonthenet.com/sql/between.php

0

精彩评论

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