2014-03-31 41 views
1

选择不同的格式(DateAdd(“”s“”,“& columnname &”,“”1/1/1980 12:00:00 AM“”),'dd -MMM-yyyy')as A我需要一个sqlite等效的folling msaccess查询

+0

所以,为了确认要求,您希望能够在固定的日期和时间内添加几秒钟。秒数包含在上面查询中的'columnname'中?这是表中的一个参数还是一列,名称建议稍后,但不是从表中选择。 – ChrisProsser

+0

此外,从格式设置看,您似乎希望以秒为单位添加数量,但会将结果截断为日期。它是否正确? – ChrisProsser

+0

谢谢你的回复。列名是从表中提取的,它包含日期。选择不同的格式(DateAdd(“s”,EXPIRY_DATE,“1/1/1980 12:00:00 AM”),'dd- MMM-yyyy')作为A。它喜欢从unixdate获得秒数,而不是unix date我必须使用1/1/1980 12:00:00 AM – user3458716

回答

0

我已经假定添加的秒数和原始日期是硬编码值,同时等待评论中要求的澄清。

要秒数增加一个日期,你可以使用:

select datetime('1980-01-01 00:00:00', "345000 seconds"); 

这给出结果:1980-01-04 23:50:00

上面的例子是在几秒钟不到4天,如果要截断结果只是查询在你的问题中隐含的日期,然后你可以把它包含在日期函数中。但是,这会在访问查询中以“YYYY-MM-DD”格式显示结果,而不是“DD-MMM-YYYY”。

不幸的是,我找不到任何原生SQLite函数来将数字月份值转换为mmm格式。您可以手动替换(与this question的回答类似),但这有点麻烦。

如果你是幸福地生活与数字月份,那么你可以简单地使用:

select strftime('%d-%m-%Y', '1980-01-01 00:00:00', "345000 seconds"); 

这给出结果:04-01-1980

在SQLite的日期更多信息/时间功能可以发现here