SQLite查询问题

时间:2011-05-12 00:44:13

标签: sql sqlite

2个问题:

首先,在MSSQL中,我可以通过执行

将nvarchar转换为datetime
cast('5/31/2011 12:00:00 AM' as datetime) as convertedtodate

结果:2011-05-31 00:00:00.000

我如何在SQLite中完成?

第二,什么是sqlite上MS SQL的datediff函数的等价物? E.g:

datediff(Day,'5/30/2011 12:00:00 AM','5/31/2011 12:00:00 AM') as DateAge  

结果:1​​

1 个答案:

答案 0 :(得分:5)

要回答您的第一个问题(将字符串转换为日期),答案是“它取决于”。由于SQLite没有特定的日期字段,您可能不需要转换它。您可以将它存储在字符串字段中(选项是sting,real或int用于日期存储)。如果要将字符串转换为int(这是自1970-01-01以来的秒数),您可以使用strftime方法,如下所示:

strftime('%s','2011-05-12 01:03:00')

至于问题的第二部分(两个日期之间的差异),您将在SQLite中使用以下代码:

strftime('%s','2011-05-12 01:03:00') - strftime('%s','2011-05-08 11:54:09')

这将为您提供两个日期之间的秒数。您可以使用这些信息以及更多信息,从SQLite中获取您正在寻找的信息。以下是一些可以帮助您的资源:

http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions

http://www.sqlite.org/datatype3.html