Preguntas de consulta SQLite

2 preguntas:

Primero, en MSSQL, puedo convertir nvarchar a datetime haciendo

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

Resultado: 2011-05-31 00: 00: 00.000

¿Cómo lo hago en SQLite?

En segundo lugar, ¿cuál es el equivalente de la function de datediff de MS SQL en sqlite? P.ej:

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

Resultado: 1

Para responder a su primera pregunta (convertir secuencia a la date), la respuesta es "depende". Como SQLite no tiene un campo de date específico, es posible que no necesite convertirlo. Simplemente puede almacenarlo en un campo de cadena (las opciones son sting, real o int para el almacenamiento de la date). Si quiere convertir la cadena a un int (que sería la cantidad de segundos desde 1970-01-01), usaría el método strftime la strftime manera:

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

En cuanto a la segunda parte de su pregunta (diferencia entre dos dates), usaría el siguiente código en SQLite:

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

Eso le dará el número de segundos entre las dos dates. Puede jugar con esta información, así como mucho más, para get exactamente lo que está buscando de SQLite. Aquí hay algunos resources que te ayudarán:

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

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