Oracle
 sql >> база данни >  >> RDS >> Oracle

Разлика в датата в Oracle и Java

Датата може да е същата, но часът може да е различен. Резултатът е 139 дни, когато изчислявате през милисекунди. (java)

Предлагам да не използвате милисекунди, а да използвате дните за изчисляване.

Нещо като

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++;
   }}

или

/**
     *
     * @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;
        }
    }

Странична бележка:Първият пример е малко по-бавен от втория, но ако е само за малки разлики, е за пренебрегване.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Задействане с оператор Merge в Oracle

  2. ORA-00942:таблица или изглед не съществува с Spring JDBC шаблон в Spring Boot

  3. Oracle Ace Промени

  4. При какви условия ROWNUM=1 повишава значително производителността в заявка за съществуващ файл

  5. Неща, които трябва да знаете, преди да научите Oracle