Comment puis-je sélectionner il y a deux semaines dans MYSQL?
J'ai un rapport qui est entraînée par une requête sql qui ressemble à ceci:
SELECT batch_log.userid,
batches.operation_id,
SUM(TIME_TO_SEC(ramses.batch_log.time_elapsed)),
SUM(ramses.tasks.estimated_nonrecurring + ramses.tasks.estimated_recurring),
DATE(start_time)
FROM batch_log
JOIN batches ON batch_log.batch_id=batches.id
JOIN ramses.tasks ON ramses.batch_log.batch_id=ramses.tasks.batch_id
JOIN protocase.tblusers on ramses.batch_log.userid = protocase.tblusers.userid
WHERE DATE(ramses.batch_log.start_time) > "2011-02-01"
AND ramses.batch_log.time_elapsed > "00:03:00"
AND DATE(ramses.batch_log.start_time) < now()
AND protocase.tblusers.active = 1
AND protocase.tblusers.userid NOT in ("ksnow","smanning", "dstapleton")
GROUP BY userid, batches.operation_id, date(start_time)
ORDER BY start_time, userid ASC
Puisque c'est à comparer avec le temps à partir de l'actuel payperiod il provoque une erreur.
Nos périodes de paie de commencer un dimanche, la première période de paie a été 2011-02-01 et notre dernière période de paye a commencé le 4 de ce mois. Comment puis-je mettre dans ma où la déclaration pour la bande la plus récente période de paie de la requête?
EDIT: Donc, maintenant, je suis en utilisant date_sub(now(), INTERVAL de 2 semaines) mais j'ai vraiment besoin d'un jour particulier de la semaine(DIMANCHE), car c'est mercredi, c'est à dégainer à mercredi.
source d'informationauteur davidahines
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez utiliser DATE_SUBet comme un exemple.
Spécifiquement:
vous permet de vous il y a deux semaines. Insérez le DATE_SUB ... dans votre sql et vous êtes bon pour aller.
Édition par votre commentaire:
Découvrez DAYOFWEEK:
et vous pouvez faire quelque chose le long des lignes de:
(Je n'ai pas une instance MySql pour le tester .. mais essentiellement soustraire le nombre de jours après le lundi.)
Question n'est pas très clair, surtout après l'édition, il n'est pas clair maintenant, c'est le "payer" période de deux semaines ou vous voulez juste les deux dernières semaines à partir de dimanche dernier? Je suppose que le délai est de deux semaines... alors vous devez d'abord savoir combien de jours de la dernière période (que vous voulez ignorer, comme il n'est pas encore terminée) a été en cours. Pour obtenir le nombre de jours que vous pouvez utiliser des expression comme
où
FirstPeriod
est2011-02-01
. Et maintenant, vous réduisez le nombre de jours à compter de la date de la requête à l'aide dedate_sub()
. L'expression exacte dépend de la façon dont la période est définie, mais vous devez avoir l'idée...