[PL/SQL] traitement de date

traitement de date [PL/SQL] - SQL/NoSQL - Programmation

Marsh Posté le 21-11-2005 à 11:32:29    

Je recupére une date d'une requete que j'affecte à un champ
 

Code :
  1. DECLARE
  2.   PD_DATE_EFFET_IMPORT DATE ;
  3.   PD_DATE_DEBUT_MOIS DATE;
  4. BEGIN
  5.   -- recuperation de la date d'effet de l'import
  6.    select date_effet_import into PD_DATE_EFFET_IMPORT from ctc where id_ctc=PNI_ID_CTC;


 
Et je veux à partir de cette date affecté le champ PD_DATE_DEBUT_MOIS au premier jour du mois de PD_DATE_EFFET_IMPORT.
 
Par exemple :
 
si PD_DATE_EFFET_IMPORT = '11/01/2005'
ALORS   PD_DATE_DEBUT_MOIS DATE = '01/01/2005'.
 
Je ne vois pas comment faire pour manipuler mes dates

Reply

Marsh Posté le 21-11-2005 à 11:32:29   

Reply

Marsh Posté le 21-11-2005 à 12:20:34    

C'est pour quelle base de données ? Cela semble être de l'Oracle. Dans ce cas, une solution consiste à convertir la date en chaine de caractères, à changer le jour, et à reconvertir en date :

SELECT TO_DATE('01/' || TO_CHAR(date_effet_import, 'mm/yyyy'), 'dd/mm/yyyy')
...


Message édité par olivthill le 21-11-2005 à 12:23:50
Reply

Marsh Posté le 21-11-2005 à 13:09:11    

et pour avoir le dernier jour du mois ou le premier jour du mois suivant

Reply

Marsh Posté le 22-11-2005 à 13:50:21    

Code :
  1. SELECT TO_DATE('01/' || TO_CHAR(maDate, 'mm/yyyy'), 'dd/mm/yyyy') as premier_jour_du_mois,
  2.        TO_DATE('01/' || TO_CHAR(ADD_MONTHS(maDate, 1), 'mm/yyyy'), 'dd/mm/yyyy') - 1 as dernier_jour_du_mois,
  3.        TO_DATE('01/' || TO_CHAR(ADD_MONTHS(maDate, 1), 'mm/yyyy'), 'dd/mm/yyyy') as premier_jour_du_mois_suivant
  4. FROM DUAL;


Message édité par Beegee le 22-11-2005 à 13:50:31
Reply

Marsh Posté le 23-11-2005 à 16:04:50    

merci beaucoup...

Reply

Sujets relatifs:

Leave a Replay

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