2016-06-13 3 views
0

У меня есть таблица SQLite DB, которая содержит дату & время для каждого элемента. Как получить те записи, которые относятся к текущей неделе и которые относятся к предыдущей неделе. Я попытался сделать это с помощью функции datetime(), но не смог найти лучшего решения/подхода.Как получить определенную запись на основе последней недели, текущей недели с использованием функции datetime()?

Я пытаюсь использовать это приложение для формы XAMARIN.

Пожалуйста, дайте мне знать, как это можно достичь.

Заранее спасибо ...

+0

GETDATE() получает вас текущий день. dateadd (день, -7, getdate()) получает вас ровно за 1 неделю до этого. –

+0

Возможный дубликат [SQLite Order By Date] (http://stackoverflow.com/questions/14091183/sqlite-order-by-date) – jzeferino

+0

Это только дата или дата? – Balaji

ответ

0

Его можно

Update: Только на прошлой неделе (за исключением текущей недели)

SELECT * FROM table WHERE strftime('%Y-%m-%d',ItemDate) >= date('now','-14 days') AND strftime('%Y-%m-%d',ItemDate)<=date('now','-7 days') 

Текущая неделя

SELECT * FROM table WHERE DATE(ItemDate) >= DATE('now', 'weekday 0', '-7 days'); 
+0

Спасибо .. На текущей неделе я могу использовать что-то вроде этого ?, 'SELECT * FROM table WHERE ItemDate> = datetime (' now ',' weekday 0 ',' -7 days '); ' –

+1

SQLite не поддерживает хранилище даты и времени: https://www.sqlite.org/datatype3.html#section_2_2 – jzeferino

+0

@jzeferino: Поскольку в 'sqlite' нет поддержки для хранения даты, я ее храню как 'varchar()' .. Теперь, как мне получить даты? могу ли я использовать вышеупомянутые подходы? –

0

Используйте функцию даты() n в вашем месте where. В этом примере я начинаю в настоящее время и получать последние дни недели date('now', 'weekday 6'), а затем начать уже сейчас, получая в первый день следующей недели, и -2 недели date('now', 'weekday 0', '-14 day')

select field1, field2 from table where 
datefield < date('now', 'weekday 6') and datefield > date('now', 'weekday 0', '-14 day') 
Смежные вопросы