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

Datoforskel i dato i Oracle og Java

Datoen kan være den samme, men tidspunktet kan være anderledes. Resulterer i 139 dage, når du regner gennem millisekunder. (java)

Jeg foreslår, at du ikke bruger millis, men bruger dagene til at beregne.

Noget lignende

public long daysBetween(Calendar startDate, Calendar endDate) {
   Calendar date = (Calendar) startDate.clone();
   long daysBetween = 0;
   while (date.before(endDate)) {
      date.add(Calendar.DAY_OF_MONTH, 1);
      daysBetween++;
   }}
 

eller

/** * * @param c1 from * @param c2 to * @return amount of days between from and to */ public int diff(Calendar c1, Calendar c2) { int years = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR); if (years == 0) { return c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR); } else { Calendar endOfYear = Calendar.getInstance(); endOfYear.set(Calendar.YEAR, c1.get(Calendar.YEAR)); endOfYear.set(Calendar.MONTH, 11); endOfYear.set(Calendar.DAY_OF_MONTH, 31); int days = endOfYear.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR); for (int i=1;i <years;i++) { endOfYear.add(Calendar.YEAR, 1); days += endOfYear.get(Calendar.DAY_OF_YEAR); } days += c2.get(Calendar.DAY_OF_YEAR); return days; } }

Sidebemærkning:Det første eksempel er lidt langsommere end det andet, men hvis det kun er for små forskelle, er det forsømt.



  1. Hvordan indsætter man mange poster til MySQL hurtigere, Java?

  2. hvordan man importerer datafiler fra s3 til postgresql rds

  3. Sådan konverteres en streng til små bogstaver i SQL

  4. Hvordan udføres enhedstest med h2 database, hvor bpchar bruges?