我需要一个sqlite,相当于正在进行的msaccess查询
选择不同的格式(DateAdd(“s”和columnname&“,”1980年1月1日12:00:00 AM“),“dd MMM yyyy”)作为我假设要添加的秒数和原始日期是下面的硬编码值,同时等待注释中要求的澄清 要向日期添加秒数,您可以使用:我需要一个sqlite,相当于正在进行的msaccess查询,sqlite,dateadd,Sqlite,Dateadd,选择不同的格式(DateAdd(“s”和columnname&“,”1980年1月1日12:00:00 AM“),“dd MMM yyyy”)作为我假设要添加的秒数和原始日期是下面的硬编码值,同时等待注释中要求的澄清 要向日期添加秒数,您可以使用: select datetime('1980-01-01 00:00:00', "345000 seconds"); 这给出了结果:1980-01-0423:50:00 上面的示例不到4天(以秒计),如果您希望将结果截断为问题中查询所暗示的日期,则可
select datetime('1980-01-01 00:00:00', "345000 seconds");
这给出了结果:1980-01-0423:50:00
上面的示例不到4天(以秒计),如果您希望将结果截断为问题中查询所暗示的日期,则可以将其封装在日期函数中。但是,这将以“YYYY-MM-DD”格式给出结果,而不是像access查询那样以“DD-MMM-YYYY”格式给出结果
不幸的是,我找不到任何本机SQLite函数来将数字月份值转换为mmm格式。您可以使用replace手动执行此操作(类似于的答案),但这有点混乱
如果您乐于接受数字月份,那么您只需使用:
select strftime('%d-%m-%Y', '1980-01-01 00:00:00', "345000 seconds");
这给出了结果:04-01-1980
可以找到有关SQLite日期/时间函数的更多信息。因此,为了确认需求,您希望能够在固定的日期和时间上添加秒数。上述查询的“columnname”中包含秒数?这是表中的一个参数还是一列,名称建议使用后者,但您不是从表中选择。此外,从格式上看,您似乎希望以秒为单位添加一个量,但结果仅截断为日期。这是正确的吗?谢谢您的回复。列名是从包含日期的表中获取的。选择不同的格式(DateAdd(“s”,EXPIRY_date,“1/1/1980 12:00:00 AM”),“dd-MMM-yyyy”)作为a。这就像是从unixdate获取秒数,而不是unix日期。我必须使用1/1/1980 12:00:00 AMI有点困惑,请你在问题中提供一个完整的例子,说明有效期的数值和查询结果。