SQLite Query Questions - PullRequest
       4

SQLite Query Questions

6 голосов
/ 12 мая 2011

2 вопроса:

Во-первых, в MSSQL я могу преобразовать nvarchar в datetime, выполнив

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

Результат: 2011-05-31 00: 00: 00.000

Как мне это сделать в SQLite?

Во-вторых, что эквивалентно datediff функции MS SQL на sqlite?Например:

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

Результат: 1

1 Ответ

5 голосов
/ 12 мая 2011

Чтобы ответить на ваш первый вопрос (преобразовать строку в дату), ответ «зависит».Поскольку SQLite не имеет определенного поля даты, вам может не потребоваться преобразовывать его.Вы можете просто сохранить его в строковом поле (варианты - sting, real или 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...