Попробуйте ниже
SELECT WEEKDAY(CREATED_ON) AS week, weight, created_on
FROM weight
WHERE CREATED_on BETWEEN start_date AND end_date
ORDER BY week
Это должно дать вам то, что вы хотите ...
Обновление 1
SELECT (SELECT COUNT(*) FROM myTable u2
WHERE
u2.date > u1.date) + 1 AS week, date FROM myTable u1
WHERE date between start_date AND end_date
ORDER BY week
Обновление 2
Вниже запроса, дата - это дата, которая у меня есть.
SELECT (WEEK(date, 5) -
WEEK(DATE_SUB(date, INTERVAL DAYOFMONTH(date) - 1 DAY), 5) + 1) as week, date
FROM myTable
WHERE date BETWEEN start_date AND end_date
ORDER BY week
Обновление 3
Предположим, у меня есть
myDate
+++++++++++++++++++++
2012-02-01 12:12:12
2012-02-01 12:12:12
2012-02-01 12:12:12
2012-02-03 12:12:12
2012-02-05 12:12:12
2012-02-07 12:12:12
2012-02-08 12:12:12
2012-02-08 12:12:12
2012-02-10 12:12:12
2012-02-14 12:12:12
2012-02-15 12:12:12
2012-02-17 12:12:12
2012-02-17 12:12:12
2012-03-01 12:12:12
2012-03-03 12:12:12
2012-03-05 12:12:12
2012-03-07 12:12:12
А ниже - то, что я хочу.
week |myDate
+++++++++++++++++++++++++++
1 |2012-03-07 12:12:12
2 |2012-03-05 12:12:12
3 |2012-03-03 12:12:12
4 |2012-03-01 12:12:12
5 |2012-02-17 12:12:12
5 |2012-02-17 12:12:12
6 |2012-02-15 12:12:12
7 |2012-02-14 12:12:12
8 |2012-02-10 12:12:12
9 |2012-02-08 12:12:12
9 |2012-02-08 12:12:12
10 |2012-02-07 12:12:12
11 |2012-02-05 12:12:12
12 |2012-02-03 12:12:12
13 |2012-02-01 12:12:12
13 |2012-02-01 12:12:12
13 |2012-02-01 12:12:12
Чтобы получить выше, см. Ниже запрос ...
SELECT (SELECT COUNT(distinct u2.myDate) FROM myTable u2
WHERE
u2.myDate > u1.myDate) + 1 AS week, myDate FROM myTable u1
WHERE 1=1
ordeR BY week
В вашем случае WHERE
предложение будет WHERE myDate between startDate AND endDate
Надеюсь, это то, что вы хотите... Наконец !!!
Удачи !!!