2010-09-20 4 views
2

J'ai une table de base de données MySQL, avec un champ timestamp unix. Je me demande comment obtenir le plus complet 13 semaines complètes?Comment obtenir des enregistrements pour les 13 dernières semaines complètes?

Mise à jour
Mais je dois désactiver la semaine en cours. J'ai donc besoin de la dernière complète (qui s'est terminée hier ou aujourd'hui) 13 semaines.

+0

Quel est le format de l'horodatage, Date, Int/Unix? – RobertPitt

+2

horodatage unix. – Pentium10

+0

Oups, ma mauvaise! – RobertPitt

Répondre

2
WHERE FROM_UNIXTIME(timestamp) > DATE_SUB(FROM_UNIXTIME(timestamp), INTERVAL 13 WEEKS) 

Si vous voulez exclure la semaine en cours, vous pouvez faire:

WHERE FROM_UNIXTIME(timestamp) < DATE_SUB(NOW(), INTERVAL 1 WEEKS) 
+0

Pourriez-vous s'il vous plaît m'aider avec un autre problème: Je dois désactiver la semaine en cours. J'ai donc besoin de la dernière complète (qui s'est terminée dans le passé ou aujourd'hui) 13 semaines. – Pentium10

+0

Ajout de la requête appropriée. – halfdan

0
SELECT *,FROM_UNIXTIME(time) AS TS FROM MyTable WHERE TS > DATE_SUB(TS, INTERVAL 13 WEEKS) 

pense que cela devrait travailler

+0

Il a déjà dit qu'il s'agit d'un horodatage unix. – halfdan

+0

Vous obtiendrez l'erreur 'Unknown column 'TS' dans 'where clause''! La clause WHERE ne peut pas faire référence à des alias! Vous devez utiliser 'HAVING' ici. – Anpher

+0

Pourriez-vous s'il vous plaît m'aider avec un autre problème: Je dois désactiver la semaine en cours. J'ai donc besoin de la dernière complète (qui s'est terminée dans le passé ou aujourd'hui) 13 semaines. – Pentium10

Questions connexes