Я хочу сгенерировать точные значения с помощью 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
в конце
Согласно этой документации, строка форматирования% f печатает дробные секунды SS.SSS.
Время в секундах (эпоха)
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)
SELECT CAST(strftime('%s%f','now') as INTEGER);