Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Comment ajouter jours à une date(fin du mois) pour avoir mois +1 et premier jour du mois +1

Bonjour,

Besoins d'aide sur un sujet de calcul de date. J'ai une colonne date sur laquelle  je verifie si heure>19h alors jour(date) +1 et heure passe à 9h, sinon si heure <9h heure alors date et heure 9h. J'ai fait ma condition qui marche bien pour tous les jours sauf dans le cas ou j'ai le dernier jour du mois. J'arrive pas à passé à mois+1 premier jour du mois, j'ai juste 9h. Comment je peux faire pour le forcer au mois d'après et au premier jour?

voici ma condition:

if(Flag_C07 = 'J+1' and day(TimeStampFOvalid)<MonthEnd(TimeStampFOvalid),Makedate(year(TimeStampFOvalid),month(TimeStampFOvalid),day(TimeStampFOvalid)+1)&' '&'09:00:00',
if(Flag_C07 = 'J+1' and day(TimeStampFOvalid)=MonthEnd(TimeStampFOvalid),Makedate(year(TimeStampFOvalid),month(TimeStampFOvalid)+1,day(TimeStampFOvalid)+1)&' '&'09:00:00',TimeStampFOvalid))

Merci.

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

Voici ta formule corrigée et simplifiée :

= If(Flag_C07 = 'J+1',
      Timestamp#(Timestamp(TimeStampFOvalid + 1, 'DD/MM/YYYY 09:00:00'), 'DD/MM/YYYY hh:mm:ss'),
      TimeStampFOvalid
)

Vu que le champ TimeStampFOvalid est de type timestamp :

  • Jour suivant (c'est pas plus compliqué que ça)
  • Forcer l'heure à 9:00:00
  • Reconvertir le texte en timestamp

View solution in original post

5 Replies
Anonymous
Not applicable
Author

Mon but est d'avoir par example:

ancienne date                    nouvelledate

31/01/2017 20:47:00          01/02/2017 9:00:00

Je n'arrive pas, et j'ai juste 9:00:00

kevinchevrier
Partner - Creator III
Partner - Creator III

Par exemple pour avoir le 01/12/2017 si on se place à aujourd'hui

=Date(MonthEnd(Date(Today()))+1,'DD/MM/YYYY')

Kevin

kevinchevrier
Partner - Creator III
Partner - Creator III

SI il y a les heures dans ton format de date, fait peut-être :

Mid(ancienne_date,1,10)

Donc essaie ceci :

Date(MonthEnd(Mid(ancienne_date,1,10))+1,'DD/MM/YYYY')  as nouvelledate

En remplacant ancienne_date par le nom de ton champ.

Kevin

sfatoux72
Partner - Specialist
Partner - Specialist

Voici ta formule corrigée et simplifiée :

= If(Flag_C07 = 'J+1',
      Timestamp#(Timestamp(TimeStampFOvalid + 1, 'DD/MM/YYYY 09:00:00'), 'DD/MM/YYYY hh:mm:ss'),
      TimeStampFOvalid
)

Vu que le champ TimeStampFOvalid est de type timestamp :

  • Jour suivant (c'est pas plus compliqué que ça)
  • Forcer l'heure à 9:00:00
  • Reconvertir le texte en timestamp

Anonymous
Not applicable
Author

Bonjour Sébastien,

Merci pour la formule simplifiée. Je retrouve toutes les réponses attendues.

Merci à vous tous de m'avoir permis d'avancer une fois de plus