![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
ekodrive |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 4.1.2006 Репутация: нет Всего: 0 |
Добрый день друзья. Такая ситуация имеется user,ddeadline,do_date_t в базе
------------------------------------------ user | deadline | do_date_t | ------------------------------------------ 1 |31.07.2013 | 09.01.2014 | 2 |31.05.2013 | 15.07.2013 | 3 |01.12.2011 | 01.11.2011 | 4 |06.11.2012 | 05.05.2012 | 5 |31.07.2013 | 02.12.2013 | deadline-это последний срок задания, do_date_t-это день выполнения заданий. для пользователя под номером 1 последний день задания в 31.07.2013 но он опоздал и сделал задание 09.01.2014, а пользователь под номером 4 сделал вовремя. Вот задача в том что нужен запрос который выводить только список опоздавших. Пробовал так
но не работает причина думаю в том что datediff оператор работает с форматами year month day a у меня day month year. Как быть ? Заранее скажу вариант изменить формат даты в базе не уместен так как количество данных много. --------------------
Смерть-Это только начало!!! |
|||
|
||||
AVA12 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 4.5.2008 Репутация: нет Всего: 4 |
В принципе, можно сконвертировать строку в дату с помощью STR_TO_DATE(`имя`, '%d.%m.%Y'). Но ведь базе данных придется конвертировать каждую дату для каждой записи при каждом поиске. Строить индекс и сравнивать даты как строки - бессмысленно. Выбор именно такого формата даты изначально был решением из разряда "уронить на ногу ядерную бомбу". Так что менять формат и использовать тип DATE, однозначно.
|
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
ekodrive, какой тип у столбцов-то? varchar что ли?
|
|||
|
||||
ekodrive |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 4.1.2006 Репутация: нет Всего: 0 |
да varchar так как вся информация был импортирован из excel --------------------
Смерть-Это только начало!!! |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
ekodrive, вам все еще нужен ответ или теперь самому стало понятно? если вы хотите хранить дату и пользоваться функциями для дат - нужно поле в соотв. формате. если вы его храните через одно место - то и доступа к функциям у вас не будет.
|
|||
|
||||
ekodrive |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 4.1.2006 Репутация: нет Всего: 0 |
Aliance, Да вы правы. Ну изменить формат поля не смогу
и вроде работает норма. Спасибо вам огромное за помощь. AVA12 и Aliance --------------------
Смерть-Это только начало!!! |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
ekodrive, честно говоря, лучше все же переконвертить. Конверт поля займет какое-то конечное время T, а конверт на лету каждый раз будет линейно расти с кол-вом вызовов запроса (Q*N), что на дальней дистанции съест вам куда больше ресурсов.
|
|||
|
||||
igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: нет Всего: 17 |
а если попробовать:
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
AVA12 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 4.5.2008 Репутация: нет Всего: 4 |
igorold, автор темы уже стоит в гамаке на лыжах, а ты еще предлагаешь скафандр надеть?
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |