Je dois sélectionner dans une table toutes les lignes dont date_added entre CURDATE() et il y a 6 semaines.Requête de période de temps SQL
Aide s'il vous plaît.
Je dois sélectionner dans une table toutes les lignes dont date_added entre CURDATE() et il y a 6 semaines.Requête de période de temps SQL
Aide s'il vous plaît.
SELECT *
FROM a_table
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 WEEK) AND CURDATE()
SELECT *
FROM mytable
WHERE date_added BETWEEN CURDATE() - INTERVAL 6 WEEK AND CURDATE()
SELECT * FROM table_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_added) <= 42
Ha! 42 utilisé * avec * raison! –
7 jours par semaine. 6 semaines ... Fonction TO_DAYS travailler avec des jours. – pltvs
+1 @Alexander: Il ne vous demandait pas comment vous aviez obtenu le 42, je suppose qu'il est un fan du Guide de la galaxie de Hitchhiker (ne sommes-nous pas tous: p). – wimvds
SELECT * FROM nom_table where DATEDIFF (NOW(), DATE_ADDED) < = 42
si vous utilisez les dates en un an
select date_format(date, '%u') from tab
where (date_format(date, '%u')-date_format(now(), '%u'))>6
si vous utilisez des dates d'années différentes
vous n'avez pas besoin d'utiliser des dates avec une autre année. vous pouvez utiliser
select
date_format(date, '%u') from tab
where (date_format(date, '%u')-date_format(now(), '%u'))>6
and
date_format(date, '%u') from tab
where (date_format(date, '%Y')-date_format(now(), '%Y'))=0
vous pouvez optimiser requête avec JOIN si vous voulez. Je pense que vous savez comment le faire
Quel dialecte de SQL? –
MySQL, pour l'utiliser avec php – Gatman
Dans le futur, vous devez spécifier cela dans la question ou le titre (en plus des balises). Puisque les différents dialectes de SQL ont la syntaxe et les fonctions variables. –