Хотите рассчитать разницу между временем телефона и временем SQL, номер не является постоянным - PullRequest
0 голосов
/ 08 июня 2018

Итак, я хочу получить разницу между System.currentTimeMillis(); телефона и "SELECT UNIX_TIMESTAMP(CURTIME(3)) * 1000" в SQL, результат кажется несколько похожим ... это как 110 мс, 111, 106, 108, вы понимаете ... Это всего лишь несколько мс, так чтоэто хорошо, но я все еще задаюсь вопросом, не должно ли быть ВСЕГДА одинаково?если нет, то почему бы и нет?И может ли это быть как-то?

rs = s.executeQuery("SELECT UNIX_TIMESTAMP(CURTIME(3)) * 1000 - " + System.currentTimeMillis());
if (rs.next()){ diff = rs.getLong(1); }
Log.d("DIFFERENCE",String.valueOf(diff));

1 Ответ

0 голосов
/ 08 июня 2018

Оба раза поступают из разных «подсистем»:

  • Один приходит из базы данных как SELECT UNIX_TIMESTAMP(CURTIME(3)) * 1000.При выполнении оператора SQL возникают накладные расходы.Эти издержки могут быть минимальными, но при большой загрузке ОС эти издержки могут быть выше (секунды или даже минуты).

  • Другой идет непосредственно от JVM, поэтому он должен бытьмгновенный (в основном).Здесь минимальное отставание.

Не ожидайте, что они будут иметь одинаковое значение.SQL всегда будет немного отставать (или сильно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...