2013-01-21 3 views
0

i ont ce genre de requête:MYSQL 30 jours requête

SELECT COUNT(*) 
FROM `reportinc` 
WHERE `Data/ora apertura` >= '21/01/13 00:00:00' 
    AND `Data/ora apertura` <= '21/01/13 18:00:00' 

Je dois répéter cette requête pendant 30 jours passés à partir d'aujourd'hui. Comment l'automatiser? Au lieu de jour: 21/01/13 je dois insérer quelque chose comme AUJOURD'HUI -1, AUJOURD'HUI -2 etc etc mais mon propre timestamp spécifié.

Comment?

+0

Quel est votre système d'exploitation? – George

+3

'Data/ora apertura' est-ce un nom de champ? : O – povilasp

Répondre

0

Quelque chose comme ceci:

WHERE `Data/ora apertura` >= CURRENT_DATE - INTERVAL 2 DAY 
    AND `Data/ora apertura` <= CURRENT_DATE - INTERVAL 1 DAY 
              + INTERVAL '18:00:00' HOUR_SECOND 
+0

Ne fonctionne pas .... ma requête SELECT COUNT (*) DE 'reportinc' OERE' Data/ora apertura'> = '21/01/13 00:00:00 'ET 'Data/ora apertura '<= '21/01/13 18:00:00' Résultats est 176 Si je tente SELECT COUNT (*) FROM' 'reportinc' OU données/ora apertura'> = « CURRENT_DATE 00:00 : 00 'AND 'Data/ora apertura' <=' CURRENT_DATE 18:00:00 ' ou SELECT COUNT (*) FROM' reportinc' OERE 'Data/ora apertura'> =' CURRENT_DATE 'ET' Données/ora apertura' <= 'CURRENT_DATE' les résultats sont 0 – svratonzo

+0

@svratonzo: Vous placez 'CURR ENT_DATE' dans un littéral de chaîne, ce qui n'est pas ce que j'ai montré ci-dessus. – eggyal

0
SELECT TO_DAYS(NOW()) - TO_DAYS(your_table_column_name) <= 30; 

Ou utilisez DATEDIFF

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30'); 
     -> 1 
0

Vous pouvez utiliser BETWEEN

SELECT COUNT(*) 
FROM `reportinc` 
WHERE `Data/ora apertura` 
BETWEEN 
    CURRENT_DATE - INTERVAL 2 DAY 
AND 
    CURRENT_DATE - INTERVAL 1 DAY + '18:00:00' 
Questions connexes