gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008
-
19 janv. 2007 à 09:12
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008
-
23 janv. 2007 à 09:28
bonjour,
je suis actuellement sur un projet auquel je suis confronté a un petit probleme de requete
je souhaite dans ma requete compter le nombre de données qui ont été enregistrés les 5 dernières minutes
pour cela dans MA_TABLE j'ai 2 propriétés : Date et l'information enregistré.
la date est enregistré sous la forme 19/01/2007 08:15:30
et j'ai créer une view dans ma base sql server pour retourner la date systeme a travers la requete suivante :
CREATE VIEW V_Date
AS SELECT CURRENT_TIMESTAMP AS DateTime
voici a quoi ressemble le debut de la requete :
SELECT COUNT(MA_TABLE.*) AS compte
FROM MA_TABLE, V_Date
WHERE (DateTime - MA_TABLE . DATE) <= ??? //5minutes
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 23 janv. 2007 à 09:28
j'ai trouvé la solution a mon probleme c bon
voici la requete sous SQL server qui est l'équivalent sous ORACLE :
ORACLE :
SELECT COUNT(*) AS compte
FROM ma_table
WHERE (sysdate - DATE)*24*60 <= 5
sysdate retourne la date système sous ORACLE
SQL SERVER :
SELECT COUNT(*)AS compte
FROM ma_table
WHERE DATEDIFF(minute, DATE, GETDATE() )<=5
GETDATE() retourne la date système sous SQL SERVER
DATEDIFF fonction qui retourne la différence en l'unité désiré entre 2 datetime
ex : DATEDIFF(Partie de date, date fin, date début)
Partie de date |Abréviations |Description |----
year |yy, yyyy, Année, ----
quart |qq, q, Trimestre, ----
month |mm, m, Mois, ----
dayofyear |dy, y, Jour de l'année (1 - 365), ----
day |dd, d, Jour, ----
weeek |wk, ww, Semaine, ----
weekday |dw, Jour de la semaine, ----
hour |hh, Heures, ----
minute |min, Minutes, ----
second |ss, s, Secondes, ----
millisecond |ms, Millisecondes
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 19 janv. 2007 à 10:00
Salut gabs77,
Un TDateTime est en fait une variable de typle double qui stocke dans sa partie fractionnaire la partie écoulée des 24 heures.Donc, en minutes 24 * 60 1440 min5 minutes 5/1440 0,00347222
var D1, D2 : TDateTime;
if D2 - D1 >= 0.00347222 then .... // D2 est au moins supérieur à D1 de 5 minutes
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 19 janv. 2007 à 15:12
thwilliam,
je te remercie mais cela ne répond pas à ma question car c'est dans la requête SQL que je veux effectuer la condition
car g une table car enregistre tous les colis lus dans la journée en enregistrant le datetime donc sa peut aller jusqu'à plus de 2000 colis
et je veux par la requete compter le nombre d'occurence dans ma table qui a été enregistrés ces 5 dernières minutes.
le traitement est donc dans la requete du meme style que l'a montré sylvunix mais sous sql server
sylvunix,
le fait est que sur oracle je sais faire mais je ne sais pas le faire sur SQL Server
Je vous remercie quand même d'avoir tenté de m'aider.