Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
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