sql - autodidacte - probleme avec les dates

sql - autodidacte - probleme avec les dates - SQL/NoSQL - Programmation

Marsh Posté le 02-06-2008 à 17:23:44    

Bonjour,
 
je decouvre actuellement le sql et je m'auto forme dirons-nous.
 
pour le moment tout avance bien, cependant je bloque sur un probleme qui somme toute, peu paraitre simple.
 
En effet, je cherche a trouver le nombre d'annee ainsi que les mois restant entre deux dates.
Concretement, le resultat que je cherche pour les date "01/01/06" et "02/06/08" c'est "2" (pour les annes) et "6" (pour les mois restant)
 
pour le moment j'ai fait ceci (qui bien entendu est faux, tout du moins pour les mois)
 
SELECT DATEDIFF(YEAR,'1/1/2006',GETDATE()) AS 'ELAPSED YEARS',  
DATEDIFF(MONTH,'1/1/2006',GETDATE()) AS 'ELAPSED MONTHS'
 
evidemment avec cette formule, pour les mois, je trouve le compte de lensemble des mois depuis le 01/01/2006
 
merci d'avance si vous pouvez maider

Reply

Marsh Posté le 02-06-2008 à 17:23:44   

Reply

Marsh Posté le 10-06-2008 à 22:13:17    

des mois complets écoulés j'en compte que 5 à priori (29 modulo 12)
 
après pour se former à ce qu'est vraiment SQL il vaudrait mieux s'amuser avec la base northwind par exemple, de vraies requêtes d'extraction de données plutôt que du calcul

Reply

Marsh Posté le 12-06-2008 à 11:49:58    

Salut,
 
Et si tu fais comme ça :
 
DECLARE @DATE_DEB SMALLDATETIME
SET @DATE_DEB = '01/08/2006'
 
SELECT DATEDIFF(MONTH,@DATE_DEB,GETDATE()) % 12 AS 'ELAPSED_MONTH',  
DATEDIFF(YEAR, @DATE_DEB, DATEADD(MONTH, - DATEDIFF(MONTH,@DATE_DEB,GETDATE()) % 12, GETDATE())) AS 'ELAPSED_YEAR'
 
 
ça te donne le nombre de mois exact, que tu retires à ta date d'arrivée pour ne garder que le nombre d'années exact.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed