R中SQLDF中日期之间的差异
Difference between dates in SQLDF in R
我正在使用 R 包 SQLDF,但无法找到两个日期时间变量之间的天数。变量 ledger_entry_created_at
和 created_at
是 Unix 纪元,当我在转换为 julianday
后尝试减去它们时,我 return 是 NA
的向量。
我查看了 并没有发现它有用,因为我的答案在 SQL 中给出,原因超出了这个问题的范围。
如果有人能帮我想出在 SQLDF 中执行此操作的方法,我将不胜感激。
编辑:
SELECT strftime('%Y-%m-%d %H:%M:%S', l.created_at, 'unixepoch') ledger_entry_created_at,
l.ledger_entry_id, l.account_id, l.amount, a.user_id, u.created_at
FROM ledger l
LEFT JOIN accounts a
ON l.account_id = a.account_id
LEFT JOIN users u
ON a.user_id = u.user_id
这个答案很简单,但是如果你已经有两个 UNIX 时间戳,并且你想知道它们之间经过了多少天,你可以简单地以秒为单位(它们的原始单位),并转换为天,例如
SELECT
(l.created_at - u.created_at) / (3600*24) AS diff
-- any maybe other columns here
FROM ledger l
LEFT JOIN accounts a
ON l.account_id = a.account_id
LEFT JOIN users u
ON a.user_id = u.user_id;
我不知道为什么您当前的方法会失败,因为您在屏幕截图中的时间戳应该是 SQLite 的 julianday
函数的有效输入。但是,同样,您可能不需要这么复杂的路线来获得您想要的结果。
我正在使用 R 包 SQLDF,但无法找到两个日期时间变量之间的天数。变量 ledger_entry_created_at
和 created_at
是 Unix 纪元,当我在转换为 julianday
后尝试减去它们时,我 return 是 NA
的向量。
我查看了
如果有人能帮我想出在 SQLDF 中执行此操作的方法,我将不胜感激。
编辑:
SELECT strftime('%Y-%m-%d %H:%M:%S', l.created_at, 'unixepoch') ledger_entry_created_at,
l.ledger_entry_id, l.account_id, l.amount, a.user_id, u.created_at
FROM ledger l
LEFT JOIN accounts a
ON l.account_id = a.account_id
LEFT JOIN users u
ON a.user_id = u.user_id
这个答案很简单,但是如果你已经有两个 UNIX 时间戳,并且你想知道它们之间经过了多少天,你可以简单地以秒为单位(它们的原始单位),并转换为天,例如
SELECT
(l.created_at - u.created_at) / (3600*24) AS diff
-- any maybe other columns here
FROM ledger l
LEFT JOIN accounts a
ON l.account_id = a.account_id
LEFT JOIN users u
ON a.user_id = u.user_id;
我不知道为什么您当前的方法会失败,因为您在屏幕截图中的时间戳应该是 SQLite 的 julianday
函数的有效输入。但是,同样,您可能不需要这么复杂的路线来获得您想要的结果。