Задать вопрос
creat1vv
@creat1vv
nodejs developer

Как выбрать из дат те что были на этой неделе?

У меня в базе данных есть действия с датами. Как я могу проверить было ли это на этой неделе?
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Если время хранится таймстемпах (а по другому очень и очень плохо), то вычисляем таймстемп, и оператор between
SELECT * FROM Products
WHERE Date BETWEEN 1669013940394 AND 1669618553557;


Вычислить даты:
from datetime import datetime, timedelta, timestamp

day = '12/Oct/2013'
dt = datetime.strptime(day, '%d/%b/%Y')
start = dt - timedelta(days=dt.weekday())
end = start + timedelta(days=6)
print(start.strftime('%d/%b/%Y'))
print(end.strftime('%d/%b/%Y'))
print(int(timestamp(start)*1000))
print(int(timestamp(end)*1000))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
1. Берёшь текущую дату
2. Находишь её код дня недели (dayofweek).
3. Вычитаешь из её кода код понедельника (смотри в документации), получаешь разность d
4. Вычитаешь из текущей даты d дней, получаешь дату понедельника на этой неделе.
5. Прибавляешь к дате понедельника 7 дней, получаешь дату следующего понедельника.
6. Проверяешь искомую дату на вхождение в этот диапазон.

Альтернативно вместо 3. и 4., в цикле вычитаешь из текущей даты 1 день, пока не получишь понедельник.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы