61 votes

Comment récupérer les enregistrements des 30 dernières minutes en MS SQL ?

Je veux récupérer les enregistrements des 30 dernières minutes dans une table. Comment faire ? Voici ma requête

select * from
[Janus999DB].[dbo].[tblCustomerPlay]
where DatePlayed < CURRENT_TIMESTAMP
and DatePlayed >
(CURRENT_TIMESTAMP-30)

96voto

Kevin Points 57797

Changez ceci (CURRENT_TIMESTAMP-30)

A ça : DateADD(mi, -30, Current_TimeStamp)

Pour obtenir la date actuelle, utilisez GetDate().

Lien MSDN vers la fonction DateAdd
Lien MSDN vers la fonction Get Date

58voto

astander Points 83138

Essayez d'utiliser DATEADD

quelque chose comme

SELECT DATEADD(minute, -30, GETDATE())

10voto

John Pickup Points 2436

Utilizar:

SELECT * 
FROM [Janus999DB].[dbo].[tblCustomerPlay] 
WHERE DatePlayed <  GetDate() 
AND DatePlayed > dateadd(minute, -30, GetDate())

3voto

Jesse Novotny Points 328

DATEADD seulement retourné Function does not exist sur MySQL 5.5.53 (je sais que c'est ancien)

Au lieu de cela, j'ai trouvé DatePlayed > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 30 minute) pour produire le résultat souhaité

2voto

TheRealZing Points 37

Rappelez-vous que CURRENT_TIMESTAMP - (nombre) fonctionne bien, mais que vous devez comprendre quel nombre il recherche - c'est un nombre de jours à virgule flottante. Ainsi, CURRENT_TIMESTAMP-1.0 correspond à 1 jour, CURRENT_TIMESTAMP-0.5 correspond à 1/2 jour. Pour 30 minutes, c'est 1.0/48.0 (utilisez le radix pour que le résultat soit un nombre à virgule flottante) ou 0.0208333333333333, donc votre requête fonctionnera si elle est réécrite comme suit

select * from
[Janus999DB].[dbo].[tblCustomerPlay]
where DatePlayed < CURRENT_TIMESTAMP
and DatePlayed >
CURRENT_TIMESTAMP-1.0/48.0

Vous pouvez également utiliser 1.0/24.0/2.0 si cela ressemble plus à une demi-heure pour vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X