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

问题描述 投票:0回答:1

下面是一个可重现的示例,我想添加时间+持续时间并以时间格式返回一个对象,例如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)
)
r datetime-format sqldf
1个回答
0
投票

使用末尾注释中可重复定义的df,假设您要对sqldf使用默认的SQLite后端,请使用substr确保小时数的格式为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等时,必须使用等号而不是arguments至data.frame

df <- data.frame(
            author = c('Tom','Jerry', 'Nick'),
            time = c('9:00','9:50','10:30'),
            duration_min = c(35,30,20))
© www.soinside.com 2019 - 2024. All rights reserved.