SQLite3 и System.currentTimeMillis ()

1

Я хочу сгенерировать точные значения с помощью SQLite strftime() или любой другой функции, такой как функция System.currentTimeMillis() в java. Есть ли способ?

SELECT strftime('%s','now'); 

генерирует текущее время, но не учитывает миллисекунды, но секунды. Я хочу точность в миллисекундах.

EDIT на основе ответа Axarydax

SELECT strftime('%s%f','now');

возвращает 129491124808.428 где% f, возвращающее 08.428, могу округлить это значение до 129491124808

РЕДАКТИРОВАТЬ 2

ROUND(strftime('%s%f','now'))

возвращает 129491124808.0 Я не хочу .0 в конце

Теги:
sqlite3
datetime

3 ответа

3

Согласно этой документации, строка форматирования% f печатает дробные секунды SS.SSS.

  • 0
    Спасибо Axarydax, но вы можете помочь мне с этим? Я хочу, чтобы он был в точности похож на java's System.currentTimeMillis ()
0

Время в секундах (эпоха)

strftime('%s','now')

Текущие секунды + миллис

strftime('%f','now')

Текущие секунды

strftime('%S','now')

Итак, если вы хотите только миллис, вы делаете:

strftime('%S','now') - strftime('%f','now')

А теперь добавьте это к времени в секундах, вы получите миллис в виде десятичных дробей

strftime('%s','now') + strftime('%f','now') - strftime('%S', 'now')

А теперь умножьте это на 1000, и вы получите текущее время в миллис

CAST((strftime('%s','now') + strftime('%f','now') - strftime('%S', 'now')) * 1000 AS INTEGER)
  • 1
    Это ошеломляет, как трудно найти эту информацию. Спасибо, парень, ты спас мне много времени.
0
SELECT CAST(strftime('%s%f','now') as INTEGER);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню