Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2016, 17:47   #1
Kamuist
Пользователь
 
Аватар для Kamuist
 
Регистрация: 15.05.2009
Сообщений: 18
По умолчанию sqlite select по датам

Доброго времени суток.
в общем есть вот такой запрос...
Код:
Select Subject, From_, cast(Data as varchar) Datyshka, idMessage
 From Messages
 Where Data  >= "06.02.2016" and Data  <=  "29.02.2016"
 Order by Data asc
и показывает он записи от 06.02.2016 и до 28.02.2016, за 29 число записей как буд-то нету, тоже самое если написать через "between"... это я обошел прибавляя день в конечную дату...
едим дальше если диапазон будет
Код:
Where Data  >= "06.02.2016" and Data  <=  "01.03.2016"
то результата в обще не будет...
и тут я понял что я что то не понял...
кто нибудь может мне это объяснить?
Kamuist вне форума Ответить с цитированием
Старый 01.03.2016, 21:46   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
и показывает он записи от 06.02.2016 и до 28.02.2016, за 29 число записей как буд-то нету, тоже самое если написать через "between"... это я обошел прибавляя день в конечную дату...
похоже, что у Вас поле Data имеет тип "datetime" и содержит не только дату, но временную составляющую (часы, минуты, секунды)

Цитата:
то результата в обще не будет...
попробуйте такой запрос:
Код:
 
Where Data  >= date('2016-02-06') and Data < date('2016-03-01')
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.03.2016, 14:23   #3
Kamuist
Пользователь
 
Аватар для Kamuist
 
Регистрация: 15.05.2009
Сообщений: 18
По умолчанию

Цитата:
похоже, что у Вас поле Data имеет тип "datetime" и содержит не только дату, но временную составляющую (часы, минуты, секунды)
так и есть но даже если сделать так:
Код:
Where Data  between "06.02.2016 00:00:00" and "01.03.2016 59:59:59"
или так...
Код:
Where Data  between date("2016-06-02 00:00:00") and date("2016-03-01 59:59:59")
то результат опять же пустота
Kamuist вне форума Ответить с цитированием
Старый 02.03.2016, 15:04   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Where Data >= "06.02.2016" and Data <= "01.03.2016"
Если дата хранится в символьном виде, то и не должен ни чего вернуть. "01.03.2016" < "06.02.2016" Логично?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.03.2016, 15:08   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Аватар, возможно!!

TC, покажите структуру таблицы messages


Цитата:
Код:
 59:59:59")
что за 59 часов?!!! O_o

ещё раз спрашиваю.
Вы пробовали запрос:
Код:
Where Data  >= date('2016-02-06') and Data < date('2016-03-01')
?
он что возвращает?

если ничего.
тогда что возвращает запрос
Код:
Select Data From Messages
Where Data  >= date('2016-02-06')
order by Data
всё корректно - отображаются только даты старше 6 февраля и в порядке возрастания дат?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.03.2016, 17:25   #6
Kamuist
Пользователь
 
Аватар для Kamuist
 
Регистрация: 15.05.2009
Сообщений: 18
По умолчанию

структура:
Код:
CREATE TABLE "Messages"
("id" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE ,
"Subject" VARCHAR,
"From_" VARCHAR, 
"Data" DATETIME,
"idMessage" VARCHAR)
Цитата:
что за 59 часов?!!! O_o
Грубанул 23 часа тоже не катит

Цитата:
ещё раз спрашиваю.
Вы пробовали запрос:
Код:


Where Data >= date('2016-02-06') and Data < date('2016-03-01')
да пробовал, ни чего не возвращает

Цитата:
если ничего.
тогда что возвращает запрос
Код:
Select Data From Messages
Where Data >= date('2016-02-06')
order by Data

всё корректно - отображаются только даты старше 6 февраля и в порядке возрастания дат?!
почти, возвращает даты в порядке возрастания включая "06.02.2016"
Kamuist вне форума Ответить с цитированием
Старый 02.03.2016, 17:36   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

чудеса Вы какие-то рассказываете...

Цитата:
почти, возвращает даты в порядке возрастания включая "06.02.2016"
угу. и там есть даты за 20-е числа февраля, за 29 февраля 2016, за март 2016 ?

А запрос
Код:
Select Data From Messages
Where Data < date('2016-03-01')
order by Data
что возвращает?

А запросы Вы через что выполняете?

и покажите, плиз, скриншоты...

у меня заканчиваются нормальные адекватные предположения.
Не хочется думать про баги и косяки, но нормального объяснения я тоже не вижу...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.03.2016, 17:38   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
"Data" DATETIME,
В sqlite есть такой тип данных?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.03.2016, 18:19   #9
Kamuist
Пользователь
 
Аватар для Kamuist
 
Регистрация: 15.05.2009
Сообщений: 18
По умолчанию

Цитата:
чудеса Вы какие-то рассказываете...
вот и я так думаю...
Цитата:
Цитата:
почти, возвращает даты в порядке возрастания включая "06.02.2016"
угу. и там есть даты за 20-е числа февраля, за 29 февраля 2016, за март 2016 ?
сейчас в обще фаталити будет...
допустим запрос:
Цитата:
Select Data From Messages
Where Data < date('2016-02-06')
order by Data
если писать дату в фомате
Цитата:
date('2016-02-06')
то вернет значения начиная с 21.02.2016, дальше если написать дату просто
Цитата:
Where Data< "06.02.2016"
то возвращает значения начиная с 06.02.2016 включительно
Цитата:
А запрос
Код:


Select Data From Messages
Where Data < date('2016-03-01')
order by Data
тоже интересный вариант получаю даты от 01.03.2016 ииии аж до 20.02.2016, хотя в базе есть даты и дальше чем 20.02.2016
Цитата:
А запросы Вы через что выполняете?
в мозилловском аддоне "SQLite manager"... вот скрин:
1.jpg
пойду конечно попробую через строку... но не думаю что результат будет другой, из своего приложения получаю такой же результат, написано на C#, для доступа использую System.Data.SQLite

Цитата:
Цитата:
"Data" DATETIME,
В sqlite есть такой тип данных?
да есть ссылко
Kamuist вне форума Ответить с цитированием
Старый 02.03.2016, 19:09   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Функция datetime это не тип данных. С этой СУБД не работаю, поэтому ни чего не берусь утверждать, но не встречал такого типа для sqlite в интернете. Вон, например
http://xbb.uz/db/Tipy-dannyh-v-SQLite-versii-3
Но коль таблица с полем такого типа создалась, то следует предположить, что это тип NUMERIC
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSP + HQL: как в блоке <select></select> вызвать метод из DAO? Blondy Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 4 01.06.2013 15:54
В зависимости от выбора в Select изменить значения другого Select Tayfun HTML и CSS 3 18.08.2011 00:05
Фильтрация по датам Shpon Microsoft Office Excel 2 12.10.2009 16:53
Select t1.N,t1.FIO,(select t2.acc from t2 where t2.type=1) from t1,t2 mavlon_m SQL, базы данных 2 17.09.2009 15:28
Передача значения в <select></select> kkkggg Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 06.09.2007 00:26