Как я могу найти данные меньше, чем «в это воскресенье» в mysql

#javascript #mysql #sql #datetime

#javascript #mysql #sql #дата и время

Вопрос:

У меня есть таблица mysql и столбец даты, которые отображаются, когда я добавляю данные…

Я хочу выбрать данные меньшего размера, чем в это воскресенье, из таблицы..

Как я могу это сделать?? вот мой код…

Я не мог понять это «sevk_tarihi <ДЕНЬ (3)»…

 foreach($baglanti->query('SELECT SUM(sistem_adedi),sevk_tarihi FROM
databasename WHERE  (sistem_tipi_data="CEDRUS" 
or  sistem_tipi_data="PINO"
or sistem_tipi_data="BOSSO" 
or sistem_tipi_data="JUNIPER"
or sistem_tipi_data="OLIVA" 
or sistem_tipi_data="CARPE" 
or sistem_tipi_data="SELVI" 
or sistem_tipi_data="AINE" 
or sistem_tipi_data="SEKOYA" 
or sistem_tipi_data="DAPHNE" 
or sistem_tipi_data="WILLOW" 
or sistem_tipi_data="SEKOYA" )
and (sevk_tarihi < DAY(3)) ' )   as $row)
  

Комментарии:

1. учитывая, что вы генерируете этот запрос внутри javascript, я бы также подумал о написании вашего кода "this sunday" внутри javascript, а не о реализации логики через SQL.

2. напишите вызываемую функцию getThisSunday() , которая выводит дату либо как объект Date, либо в yyyy-mm-dd формате

3. getThisSunday() не помогает..

4. Совет: WHERE sistem_tipi_dat IN ("CEDRUS", PINO", ..., "SEKOYA") ...

5. @haluk предполагается, что вы создаете функцию, ха-ха, а не просто пишете getThisSunday() и надеетесь, что это сработает

Ответ №1:

Чтобы вычислить дату последнего воскресенья, вы можете смещать текущую дату по dayofweek() - 1 дням, например:

 current_date - interval (dayofweek(current_date) - 1) day
  

dayofweek() возвращает 1 в воскресенье, 2 и в понедельник, и так далее.

Комментарии:

1. итак, каждый день мне нужно менять код? чтобы увидеть меньше, чем в это воскресенье? 🙂

2. @haluk: нет. Это выражение динамически вычисляет дату последнего воскресенья на основе текущей даты.

3. это означает, что «1» = понедельник недели, который включает «current_date»?

4. @haluk: Я не понимаю вашего вопроса. Это выражение дает вам дату последнего воскресенья, именно так я понял ваш вопрос. Пожалуйста, попробуйте. вы можете изменить current_date на некоторую буквальную дату, чтобы понять, как это ведет себя.

5. это в эту субботу.. как насчет прошлой субботы? Поэтому я попробую t между 2 датами, чтобы я мог видеть, работает excat или нет.. Спасибо

Ответ №2:

Извините, я неправильно понял вопрос

Это дает вам прошлое воскресенье

 set @date = curdate() ;
SELECT @date - interval weekday(@date)   1 DAY;
  

это дает вам следующее воскресенье

 set @date = curdate();
SELECT @date   interval 6 - weekday(@date) day;
  

для вашего запроса

 sevk_tarihi < curdate()   interval 6 - weekday(curdate()) day
  

дает вам это воскресенье

Комментарии:

1. воскресенье = 6 или 0?

2. weekday возвращает 0 для понедельника и т.д.

3. ( sevk_tarihi МЕЖДУ current_date — интервалом будний день (current_date) 1 ДЕНЬ И current_date() интервал 6 — будний день (current_date()) день)’)

4. это показывает мне весь проект на этой неделе … ошибка в вашем коде «не curdate», это current_date».. В любом случае спасибо