2 votes

Comment obtenir les trois prochains mois dans oracle en utilisant sysdate

J'ai une requête sql server qui retourne le mois en cours et les 3 mois à venir.

SELECT CAST(DATENAME(month, getdate() )               as VARCHAR(3))  
     , CAST(DATENAME(month, dateadd(mm,1,getdate()) ) as VARCHAR(3))
     , CAST(DATENAME(month, dateadd(mm,2,getdate()) ) as VARCHAR(3))
     , CAST(DATENAME(month, dateadd(mm,3,getdate()) ) as VARCHAR(3)) 

Comment puis-je modifier ceci pour obtenir une requête équivalente à celle d'Oracle ?

3voto

Ben Points 23834

La fonction TO_CHAR() peut être utilisé pour convertir une date en un caractère. Pour obtenir le mois en cours au format 3 caractères, vous pouvez utiliser la commande modèle de format MON lors de l'utilisation de TO_CHAR(). Les données renvoyées suivent votre capitalisation du modèle de format.

Par exemple :

SQL> select to_char(sysdate, 'mon')
  2       , to_char(sysdate, 'MON')
  3    from dual;

TO_CHAR(SYSD TO_CHAR(SYSD
------------ ------------
mar          MAR

La fonction ADD_MONTHHS() peut être utilisé pour ajouter un mois à une date :

SQL> select to_char(add_months(sysdate, 1), 'MON')
  2    from dual;

TO_CHAR(ADD_
------------
APR

Vous pourrez l'étendre pour convertir l'ensemble de votre requête.

0voto

TechDo Points 11224

Essayez, s'il vous plaît :

select TO_CHAR(SYSDATE, 'Month'), 
  TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'Month'), 
  TO_CHAR(ADD_MONTHS(SYSDATE, 2), 'Month'), 
  TO_CHAR(ADD_MONTHS(SYSDATE, 3), 'Month')  
FROM DUAL;

0voto

user7023624 Points 196

Essayez ceci :

select to_char(CURRENT_DATE,'Month'),
to_char(ADD_MONTHS( CURRENT_DATE, 1 ), 'Month'),
to_char(ADD_MONTHS( CURRENT_DATE, 2 ), 'Month'),
to_char(ADD_MONTHS( CURRENT_DATE, 3 ), 'Month')

from dual

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