SQLite查询问题

6

有两个问题:

首先,在MSSQL中,我可以通过以下方式将nvarchar转换为datetime:

cast('5/31/2011 12:00:00 AM' as datetime) as convertedtodate

结果:2011年5月31日 00:00:00.000

我该如何在SQLite中实现它?

其次,MS SQL的datediff函数在SQLite中有什么等效的功能呢?例如:

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

结果:1

1个回答

5

回答你的第一个问题(将字符串转换为日期),答案是“取决于情况”。由于SQLite没有特定的日期字段,您可能不需要进行转换。您可以将其存储在字符串字段中(选项为字符串、实数或整数以进行日期存储)。如果您想将字符串转换为整数(这将是自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


@john ryan - 你说它不起作用是什么意思?我试过了,对我来说它是有效的。第一个将日期转换为UNIX时间格式,而第二个给出了两个日期之间的秒数。这些信息都是从文档中提取的,所以我认为了解你遇到了什么错误会很有帮助。 - IAmTimCorey
@john ryan - 尝试使用 SELECT strftime('%s','2011-05 . . .; 看看是否有效。 - JasonFruit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接