#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».. В любом случае спасибо