web-dev-qa-db-fra.com

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

Je veux récupérer des enregistrements pour les 30 dernières minutes dans un tableau. Comment faire ça? Ci-dessous ma requête ..

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

Changer ce (CURRENT_TIMESTAMP-30)

À ceci: 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

73
kemiller2002

Regardez avec DATEADD

quelque chose comme

SELECT DATEADD(minute, -30, GETDATE())
38
Adriaan Stander

Utilisation:

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

SQL Server utilise des dates en julien pour que vos 30 signifie "30 jours calendaires". getdate () - 0.02083 signifie "il y a 30 minutes".

0
Sir Wobin

DATEADD n'a retourné que Function does not exist sur MySQL 5.5.53 (je sais que c'est vieux)

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

0
Jesse Novotny