Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите написать функцию / 9 сообщений из 9, страница 1 из 1
20.02.2014, 16:13:35
    #38567749
paha4444
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать функцию
Есть таблица в БД с такими полями
id(тип поля int)
id_number(тип поля int)
date_from(тип поля varchar)
date_to(тип поля varchar)
price(тип поля int)

данные в полях
id id_number date_from date_to price
1 1 01.10 30.04 3000
2 1 01.05 30.09
3 1 25.05 15.07
4 1 29.12.12 08.01.13

--
У меня есть дата 5.10.13.
Мне нужно получить значение поле price где ДАТА входит в промежуток date_from - date_to, сначала сделать выборку по полным датам 29.12.12(в которых указан год), если ничего не найдено, тогда выбирать по тем датам в которых месяц и день даты(5.10) входит в промежуток date_from - date_to.
...
Рейтинг: 0 / 0
20.02.2014, 17:12:18
    #38567853
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать функцию
paha4444,

paha4444Я пишу компонент для сайта на CMS Joomla

Уже получается - форум пишет мне компонент..)
Это вам в раздел mysql надо, во-первых. А во-вторых, лучше почитайте уже наконец сами что нибудь. Как работать с датой в мускуле, выбрать все за промежуток дат. Даже на этом форуме не раз обсуждалось. А когда вы это все прочитаете, напишете свой запрос и у вас вдруг выскочит ошибка, или ничего не найдет, вы почитайте еще раз, подумайте что сделали не так. А если уж и тогда не получится то СО СВОИМ КОДОМ, который не так работает приходите спрашивать совета.

Пока тему можно назвать как "Напишете мне функцию, мне лень читать мануалы и чему то учиться, я хочу готовое".
...
Рейтинг: 0 / 0
20.02.2014, 17:28:59
    #38567880
paha4444
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать функцию
SharuPoNemnogu,

как делать выборку по дате я знаю. Я незнаю как сделать выборку по дате и месяцу не смотря на год.
...
Рейтинг: 0 / 0
20.02.2014, 17:35:29
    #38567889
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать функцию
paha4444,

ну во первых почему дата без года хранится?
и во вторых:
date_from(тип поля varchar)
date_to(тип поля varchar)
Какой VARCHAR для даты???? Вы сами себе жизнь усложняете.
...
Рейтинг: 0 / 0
20.02.2014, 19:22:00
    #38567986
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать функцию
paha4444У меня есть дата 5.10.13.
Мне нужно получить значение поле price где ДАТА входит в промежуток date_from - date_to, сначала сделать выборку по полным датам 29.12.12(в которых указан год), если ничего не найдено, тогда выбирать по тем датам в которых месяц и день даты(5.10) входит в промежуток date_from - date_to.Не знаю, зачем так понадобилось, ну раз уж надо, так придется переделывать структуру таблицы, указывая полные даты в отдельном поле с правильным типом. А короткие даты преобразовать хотя бы и к строковым вида "ММДД" или "ММ.ДД". Это, если по-хорошему.

Если по-плохому (оставить структуру как есть) - здравствуй вынос мозга жестокое снижение производительности SQL-запроса обилием функций преобразования.

Модератор: paha4444
Кажется, Ваш вопрос практически не имеет отношения к данному форуму PHP, Perl, Python. Если это действительно так, напишите, в какой форум его перенести.
...
Рейтинг: 0 / 0
20.02.2014, 19:46:03
    #38568013
paha4444
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать функцию
SharuPoNemnogupaha4444,

ну во первых почему дата без года хранится?
и во вторых:
date_from(тип поля varchar)
date_to(тип поля varchar)
Какой VARCHAR для даты???? Вы сами себе жизнь усложняете.

Я ставил для даты формат DATE, просто в этом случае мне нужно при добавлении значения в поле даты, указывать год. А мне год в некоторых случаях ненужен.

Вобщем задача в том, что после бронирования номера мне нужно указать и подсчитать стоимость номера в сутки. Цены находятся в отдельной таблице. И мне нужно из этой таблицы выбирать цену для подсчета по дате.
В таблице даты от и до.
Вся сложность в том, что даты могут быть указаны например только 10.05(день.месяц) без года.
Например
с 01.10 по 30.04 - 3000руб., если дата попадает в этот промежуток тогда считать стоимость по этой дате.


Скажите а можно как нибудь хранить в БД в поле DATE только день и месяц без года?
...
Рейтинг: 0 / 0
20.02.2014, 19:57:01
    #38568033
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать функцию
paha4444Скажите а можно как нибудь хранить в БД в поле DATE только день и месяц без года?
О какой именно СУБД идет речь?
А в общем то, не припоминаю СУБД со столь произвольным форматом даты. Проще использовать строку фиксированной длины для таких данных. Только не в человеко-понятном виде, как Вы пытаетесь делать, а в машинно-ориентированном. Преобразование в человекопонятный вид и обратно выполнять на стороне клиента.
...
Рейтинг: 0 / 0
20.02.2014, 20:20:28
    #38568065
paha4444
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать функцию
vkle,

БД MySQL

я думаю хранить в человеко понятном виде вот так 10.05, а при необходимости преобразовывать в машинно-ориентированный вид.

Сейчас попробую, если что отпишу.
...
Рейтинг: 0 / 0
20.02.2014, 21:21:41
    #38568098
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать функцию
Да без проблем. Начните с реализации преобразования таких данных для банальных операций сравнения <,>,=. Потом убедитесь в невозможности использования индексов.

Модератор: Тема перенесена из форума "PHP, Perl, Python".
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите написать функцию / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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