Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Sự khác biệt về ngày tháng trong Oracle và Java

Ngày có thể giống nhau nhưng thời gian có thể khác. Kết quả là 139 ngày khi bạn tính toán qua mili giây. (java)

Tôi khuyên bạn không nên sử dụng mili mà hãy sử dụng ngày để tính toán.

Một cái gì đó giống như

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

hoặc

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

Lưu ý:Ví dụ đầu tiên chậm hơn một chút so với ví dụ thứ hai, nhưng nếu nó chỉ vì những khác biệt nhỏ, nó có thể bị bỏ qua.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHỌN từ bảng với danh sách Thay đổi IN trong mệnh đề WHERE

  2. Truy vấn động với HibernateCritera API &Oracle - hiệu suất

  3. Chuyển đổi từ ngày sang kỷ nguyên-Oracle

  4. Ràng buộc duy nhất không có chỉ mục

  5. Làm cách nào để trả về một tập hợp kết quả từ Cửa sổ truy vấn trong Oracle SQL Developer?