sql >> Database teknologi >  >> RDS >> Oracle

Sammenligning af datoer ved hjælp af Dynamic Action på DatePicker Oracle Apex

Som @ScottWe nævner:du forsøger at anvende PLSQL-logik i HTML/javascript. 'When - Condition' evalueres under kørsel, og du kan derfor ikke bruge PLSQL der. Datoregningen er dog lidt irriterende i javascript, så hvis du ikke kender den, er her en måde, du kan udføre din kontrol på (det vil sige, er den indtastede dato i morgen eller ej).

Jeg tager mine spor fra disse:
Datoforskel i Javascript (ignorerer tidspunkt på dagen)
JavaScript, hvordan du får morgendagens dato i formatet dd-mm-åå

Tilføj denne funktion til sidens javascript-sektion for globale variabler og funktioner:

function isTomorrow(pDateItem){  
  function getTomorrow(){ 
    var tomorrow = new Date();
    tomorrow.setDate(tomorrow.getDate() + 1);
    return tomorrow;
  };

  function cutTime(pDate){
    return new Date(pDate.getFullYear(), pDate.getMonth(), pDate.getDate());
  };

  // check if pDateItem leads to a selection
  // check if it is a datepicker
  // check if a date has been selected
  if ( $(pDateItem).length 
       && $(pDateItem).data("datepicker")
       && $(pDateItem).datepicker("getDate") !== null 
     ) 
  {        
    var tomorrow = getTomorrow();
    var check = $(pDateItem).datepicker("getDate");
    var one = cutTime(check);
    var two = cutTime(tomorrow);

    return one.getDate() === two.getDate();
  };
  return false;
}

Brug derefter et javascript-udtryk i din dynamiske handling 'When'-tilstand med denne kode:

isTomorrow(this.triggeringElement)

Så udløses de tilsvarende True Actions først, når datoen er sat til i morgen.




  1. Hvordan får man data fra en anden tabel ved hjælp af en kolonnedata fra en anden tabel?

  2. Hvad betyder et tidsstempel i T-Sql i C#?

  3. Hvad er løsningen for at bruge dynamisk SQL i en lagret procedure

  4. Hvordan sletter jeg dublerede rækker og beholder rækken med højere værdi?