R Разница SQLDF между двумя временными метками в днях? - PullRequest
0 голосов
/ 22 февраля 2020

Я использую пакет SQLDF, в котором мне нужно получить разницу между временными метками, преобразованными в разные форматы, такие как секунды и даты. Я не могу найти какой-либо объект метки времени в документации, пробовал это предложение здесь , работает неправильно, поэтому

Как можно вычислить разницу между метками времени с пакетом SQLDF в R?

> sqldf("SELECT strftime('%Y-%m-%d %H:%M:%S', '2017-10-10 10:10:10')-  strftime('%Y-%m-%d %H:%M:%S', '2019-01-01 01:01:01') AS timestamp2")

timestamp2
1       -2


> sqldf("SELECT '2017-10-10 10:10:10'-'2019-01-01 01:01:01'")

'2017-10-10 10:10:10'-'2019-01-01 01:01:01'
1                                          -2

1 Ответ

2 голосов
/ 22 февраля 2020

Ваша путаница может быть связана с путаницей функции strftime(), существующей в R, с функцией с тем же именем, которая также существует в SQLite. Учитывая, что пакет sqldf будет запускать все, что находится внутри строки запроса в виде кода SQLite, если вы хотите разницу в секундах, вы должны использовать:

SELECT
    strftime('%s', '2017-10-10 10:10:10') -
    strftime('%s', '2019-01-01 01:01:01');

Это возвращает -38674251, что соответствует второй отметке времени, которая примерно на 1,25 года позже первой отметки времени.

...