如何在sqldf中添加时间数据类型?

how to add time datatype in sqldf?

下面是一个可重现的例子,我想添加 time+duration 和 return 一个对象作为时间格式,例如 9:00 + 35 我需要输出 9:35 和很快。那么在 sqldf 中执行此操作的最佳方法是什么。我知道如何使用 r 但需要在 sqldf 代码中做到这一点?任何帮助将不胜感激。

df <- data.frame(
            author = c('Tom','Jerry', 'Nick'),
            time = c('9:00','9:50','10:30'),
            duration_min = c(35,30,20)
)

Using df defined reproducibly in the end, assuming you want to use the default SQLite backend to sqldf then use substr to ensure the hours are in the 末尾形成 HH 而不仅仅是 H 然后使用 SQLite time function:

sqldf("select 
    *, 
    time(substr('0' || time, -5), duration_min || ' minutes') as time2 
  from df")

给予:

  author  time duration_min    time2
1    Tom  9:00           35 09:35:00
2  Jerry  9:50           30 10:20:00
3   Nick 10:30           20 10:50:00

备注

请注意,我们必须使用等号而不是 <- 在将 df 的列定义为 author 等是 argumentsdata.frame.

df <- data.frame(
            author = c('Tom','Jerry', 'Nick'),
            time = c('9:00','9:50','10:30'),
            duration_min = c(35,30,20))