2010-03-19 7 views
2

J'ai une table qui contient le champ date et heure.Question de requête de date et d'heure (SQL Server 2008)

id|date|time 
========= 
1|01/01/2001|10:45 
2|01/02/2002|11:45 
3|01/03/2003|12:45 
4|01/04/2004|12:55 

J'ai besoin de connaître la différence entre le MAX(date) et la MIN(date)

Et MAX (temps) et le MIN (heure)

Quelque chose comme .... ??? MAX(date)-MIN(date). ....

Merci à l'avance

+1

vous devez apprendre à mettre en évidence des lignes de code, SQL, XML ou des tableaux de largeur fixe, puis utilisez le bouton "code" (101 010) dans la barre d'outils de l'éditeur pour bien les formater! –

Répondre

3

DATEDIFF est votre ami.

Pour obtenir la différence en nombre de jours: SELECT DATEDIFF(day, MIN(date), MAX(date)) FROM [table] = 1186

Pour obtenir la différence dans le nombre d'heures: SELECT DATEDIFF(hour, MIN(time), MAX(time)) FROM [table] = 2

Pour obtenir la différence en nombre de minutes: SELECT DATEDIFF(minute, MIN(time), MAX(time)) FROM [table] = 130

+0

merci pour l'aide, si j'ai ce format (max): 2010-03-18 10: 44: 00.000 et (min) 2010-01-13 03: 23: 00.000 - comment voir la différence entre? – Gold

0

Une façon très simple d'obtenir ce que vous demandez est ...

SELECT 
[DifferanceInMinutes] = DATEDIFF(mi,(SELECT MIN(YourDate) FROM MyTable),(SELECT MAX(YourDate) FROM MyTable)) 

http://msdn.microsoft.com/en-us/library/ms189794.aspx

+0

Vous n'avez pas besoin des sous-requêtes - 'SELECT DifferanceInMinutes = DATEDIFF (mi, MIN (YourDate), MAX (YourDate)) DE MyTable;' –

+0

Hé, je l'ai dit vraiment * simple * façon! :) –

+0

Mon chemin est vraiment simple! Les sous-requêtes sont plus difficiles à lire IMO ;-) –