powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Диапазон даты
18 сообщений из 18, страница 1 из 1
Диапазон даты
    #38797260
Nelzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,Хочу вытащить таблицу по диапазону даты.



делаю так

Код: sql
1.
2.
3.
SELECT * FROM contacts
  WHERE created_at BETWEEN STR_TO_DATE('2014-10-01', '%Y-%m-%d') 
  AND STR_TO_DATE('2014-10-03', '%Y-%m-%d');



получаю дату 2014-10-01 и 2014-10-02, куда пропал послед 2014-10-03? как его получить?

Правильно ли я вытаскиваю диапазон в таком виде?
...
Рейтинг: 0 / 0
Диапазон даты
    #38797281
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nelzzкуда пропал послед 2014-10-03?куда,куда... стр_ту_дэйт даёт нам что? а сравниваете вы с чем?
...
Рейтинг: 0 / 0
Диапазон даты
    #38797283
Nelzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirNelzzкуда пропал послед 2014-10-03?куда,куда... стр_ту_дэйт даёт нам что? а сравниваете вы с чем?

видно он для конвертации там) взял поставил работал и не парилься), как тогда правильно сделать?
...
Рейтинг: 0 / 0
Диапазон даты
    #38797286
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nelzz,

вы ответьте на мои вопросы, и понимание должно прийти :)
...
Рейтинг: 0 / 0
Диапазон даты
    #38797306
Nelzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirNelzz,

вы ответьте на мои вопросы, и понимание должно прийти :)

не понимаю как сравнивать...
...
Рейтинг: 0 / 0
Диапазон даты
    #38797402
Nelzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как теперь решить?
...
Рейтинг: 0 / 0
Диапазон даты
    #38798056
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nelzz,

даю наводку: вы сравниваете разные типы данных.
...
Рейтинг: 0 / 0
Диапазон даты
    #38798097
LiveMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nelzz,

для того чтобы пришло понимание, что все таки происходит выполните простенький селект

select created_at, STR_TO_DATE('2014-10-01', '%Y-%m-%d') from contacts limit 1

Вы визуально сравните чем 2 столбца будут отличаться. А отличаться они не должны.
...
Рейтинг: 0 / 0
Диапазон даты
    #38798130
Nelzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LiveManNelzz,

для того чтобы пришло понимание, что все таки происходит выполните простенький селект

select created_at, STR_TO_DATE('2014-10-01', '%Y-%m-%d') from contacts limit 1

Вы визуально сравните чем 2 столбца будут отличаться. А отличаться они не должны.

сравнил вернул 2014-10-01 без времени. Так и должно быть.

Делаю так,вроде все работает как надо.

SELECT * FROM `contacts` WHERE DATE(`created_at`) BETWEEN '2013-01-08' AND '2014-12-10'

правильно ли делаю?
...
Рейтинг: 0 / 0
Диапазон даты
    #38798189
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nelzzвернул 2014-10-01 без времени. Так и должно быть.а почему тогда удивляетесь
Nelzzкуда пропал послед 2014-10-03?
...
Рейтинг: 0 / 0
Диапазон даты
    #38798338
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirразные типы данных.Почему? Не вижу этого в исходных данных.

Имхо, все намного проще:
Код: sql
1.
2.
SELECT * FROM contacts
  WHERE created_at >= '2014-10-01 00:00:00' AND created_at < '2014-10-04 00:00:00'

Тогда в результате будут и 1, и 2, и 3 числа.

Но все-таки желательно уточнить, какого типа поле created_at.
...
Рейтинг: 0 / 0
Диапазон даты
    #38798354
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksofttanglirразные типы данных.Почему? Не вижу этого в исходных данных.

Имхо, все намного проще:
Код: sql
1.
2.
SELECT * FROM contacts
  WHERE created_at >= '2014-10-01 00:00:00' AND created_at < '2014-10-04 00:00:00'

Тогда в результате будут и 1, и 2, и 3 числа.

Но все-таки желательно уточнить, какого типа поле created_at.

а я вижу - дата и датавремя
...
Рейтинг: 0 / 0
Диапазон даты
    #38798369
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
Код: sql
1.
AND created_at < '2014-10-04 00:00:00'

Вооот, а у ТСа - битвин с предыдущей датой. А битвин потому, что при работе с датами он таких эффектов не даёт, вот ТС им и пользовался и даже не задумывался об этом... пока на "глюк" не напоролся :)
...
Рейтинг: 0 / 0
Диапазон даты
    #38798372
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453а я вижу - дата и датавремяВсе равно криминала в этом не вижу
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-conversion.html Conversion of DATE values:

Conversion to a DATETIME or TIMESTAMP value adds a time part of '00:00:00' because the DATE value contains no time information.Т.е. будет подставлено время '00:00:00'.
А 3 число пропадало совершенно логично, т.к. не выполнялось второе условие '2014-10-03 13:27:26' <= '2014-10-03 00:00:00' в операторе BETWEEN.
...
Рейтинг: 0 / 0
Диапазон даты
    #38798375
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, так не выполнялось-то оно как раз потому, что ТС писал условие, считая, что сравнивает date, а на самом деле сравнивался datetime.
...
Рейтинг: 0 / 0
Диапазон даты
    #38798385
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirа на самом деле сравнивался datetimeДа я вроде бы так и написал.
Я только не понял, что ТС этого не понял :)
...
Рейтинг: 0 / 0
Диапазон даты
    #38798518
Nelzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дата должен быть виде 2014-10-07 так как запрос идет в таком виде к базе, тип timestamp, мне фреймворк генерит все это.

в инпуте он таком виде 2014-10-01 - 2014-10-03 я их разделаю аккуратно и делаю такой запрос:

SELECT * FROM `contacts` WHERE DATE(`created_at`) BETWEEN '2014-10-01' AND '2014-10-03'

этот запрос работает как надо. Правильно ли так? с типом timestamp
...
Рейтинг: 0 / 0
Диапазон даты
    #38798538
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nelzzтип timestampПричем тут timestamp?
'2014-10-01' - это тип date.
'2014-10-03 13:27:26' - это datetime.
NelzzSELECT * FROM `contacts` WHERE DATE(`created_at`) BETWEEN '2014-10-01' AND '2014-10-03'Можно и так, то это не позволит использовать индекс по полю `created_at`, быстродействие запроса будет невысоким.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Диапазон даты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]