powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как в mysql получить первое число месяца текущего времени
25 сообщений из 62, страница 2 из 3
как в mysql получить первое число месяца текущего времени
    #39216496
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7запросы будут как правило получить все лицевые счета за такой то месяцтогда первым ставить надо месяц
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39216507
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

как убрать автоинскремент и для чего , я что-то не понял

ваш запрос который вы предложили выполнялся очень долго
какие ключи надо построить для ускорения его, по каким полям и в каких таблицах ?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select
kartab_askue.lic_sch,
kartab_askue.data_kon,
kartab_askue.date_kon,
kartab_askue.base,
(select yearmon from kartkvgd_askue where lic_sch=kartab_askue.lic_sch order by yearmon desc limit 1) as yearmon,
(select data_new from kartkvgd_askue where lic_sch=kartab_askue.lic_sch order by yearmon desc limit 1) as data_new
from 
kartab_askue 
where kartab_askue.del=0



учтите что в картвгд на один лицевой счетможет быть несколько ермонов, то же самое и с дата нью
т.е человек может оплатить несколько раз за месяц
я так понимаю сортировать надо по двум полям yearmon и data_new
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39216530
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7,

один индекс в картквгд по (лицевой счёт, ермон)
или даже по (лицевой счёт, ермон, дата_нью) если это поле небольшого размера - я так и не понял, что там хранится
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39216532
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7запросы будут как правило получить все лицевые счета за такой то месяцТ.е. например, за все октябри за несколько лет сразу?
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39216538
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

ставлю постгрес против фвмас, что за один месяц одного года
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39216552
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirmiksoft,

ставлю постгрес против фвмас, что за один месяц одного годаТогда почему "первым ставить надо месяц" ?
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39216600
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

вообще за месяц года всех абонентов получать

или за последний месяц( ну я думаю в этом случае не прокатит так как строка)
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39216607
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

дата_нью - это последние показания абонента за месяц , который платит.
т. как правило это величина тоже максимальная должна быть но не всегда, например при смене счетчика посл показания могут быть меньше чем предыдущие

но для последнего месяца ермона само то
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39216675
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

спасибо вам

постороил составной индекс лицевой-ермон-датанью

и видоизменил ваш запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT
kartab_askue.lic_sch,
kartab_askue.fam,
kartab_askue.`name`,
kartab_askue.otch,
kartab_askue.data_kon,
(SELECT data_new from kartkvgd_askue where lic_sch=kartab_askue.lic_sch and del=0 order by yearmon desc,data_new asc limit 1) As data_new,
kartab_askue.date_kon,
(SELECT yearmon from kartkvgd_askue where lic_sch=kartab_askue.lic_sch and del=0 order by yearmon desc,data_new asc limit 1) As yearmon,
kartab_askue.cod_st,
kartab_askue.cod_tn,
kartab_askue.base
from 
kartab_askue 
where kartab_askue.del=0



отрабатывает за 13 сек что уже неплохо

вопрос такой в картабе есть еще поля код ст(код улицы - не смейтесь но это строка) и код тн(код города-тоже строка) они связываются с другими двумя таблицами где хранятся соответственно названия улиц и городов, мне их тоже вытащить таким же образом через подзапросы или потом уже соединять?
картаб и таблица города и улицы связываются по 2-ум полям код ст/код ст И по полю base
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39216997
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7miksoft,
решил месяц_дату хранить в одном поле в строковом виде

ну и зря
цифры то покомпактней и побыстрее будут
чем SMALLINT не угодил?
пихайте в него 1216 (декабрь 2016)
и всего за 2 байта
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39217022
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78olegon7miksoft,
решил месяц_дату хранить в одном поле в строковом виде

ну и зря
цифры то покомпактней и побыстрее будут
чем SMALLINT не угодил?
пихайте в него 1216 (декабрь 2016)
и всего за 2 байтаНу так можно и вовсе до байта сократить. Например, хранить в нем номер месяца с 1 апреля 2016 года. На 21 год хватит
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39217204
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksofttip78пропущено...


ну и зря
цифры то покомпактней и побыстрее будут
чем SMALLINT не угодил?
пихайте в него 1216 (декабрь 2016)
и всего за 2 байтаНу так можно и вовсе до байта сократить. Например, хранить в нем номер месяца с 1 апреля 2016 года. На 21 год хватит
да чем бы дитё не тешилось
если подходит для задачи, то и на здоровье
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39217714
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksofttanglirmiksoft,

ставлю постгрес против фвмас, что за один месяц одного годаТогда почему "первым ставить надо месяц" ?Имелось в виду, что первым должно быть поле "год-месяц", а не счёт.
olegon7и видоизменил ваш запросВо втором подзапросе сортировку по дата_нью можно убрать, она ни на что не влияет.
olegon7мне их тоже вытащить таким же образом через подзапросы или потом уже соединять?Ну, пальцем в небо - это статичные справочники без всякой периодики, попробуйте просто заджойнить их в основной запрос (надеюсь, индексы на поля кодов в тех таблицах есть?)
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39217805
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
сделал по вашей рекомендации год-месяц тип строка что то вроде 2016-4 получилось

не понял про сортировку по полю дата_нью , зачем ее убирать?

ведь за одну дату может быть несколько платежей, а надо выбрать самую большую по значению дата нью.
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39220398
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал простую хранимку

на удаление записей по параметру

не могу понять почему она не выполняется
вот ddl
Код: sql
1.
2.
3.
4.
5.
CREATE DEFINER=`Oleg`@`` PROCEDURE `del`(IN `year_mon` char)
BEGIN
DELETE  FROM dirty_data WHERE dirty_data.year_mon_record=year_mon;

END



если отдельно запрос то выполняется , я так понимаю что то с параметром не так
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39220432
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7
Код: sql
1.
DEFINER=`Oleg`@``

дефайнер разве так можно писать?


случаем, в таблице нет поля year_mon ?
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39220456
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

есть yearmon слитно

если запрос просто написать записи удаляются
а хранимко нет
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39220461
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разобрался не так параметр писал
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39220464
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7,

поле year_mon_record какого типа?
olegon7
Код: sql
1.
(IN `year_mon` char)

Почему char без длины?
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39220805
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

нет все там хорошо - поле тип varchar, значение не правильно передавал, разобрался

вопрос у меня сейчас уникальный ключ составной - year_mon_record, lic_sch
т е пара 2016-4 и 4239482334 всегда уникальна

могу ли я еще построить ключ чтобы в пределе месяца были уникальные значения?

т е поп полю lic_sch
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39220874
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7вопрос у меня сейчас уникальный ключ составной - year_mon_record, lic_sch
т е пара 2016-4 и 4239482334 всегда уникальна

могу ли я еще построить ключ чтобы в пределе месяца были уникальные значения ?

т е поп полю lic_schА первое и второе - это разве не одно и то же?
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39220919
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

это будет контролироваться на уровне записи?
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39220938
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegon7miksoft,

это будет контролироваться на уровне записи?Вопрос не понял.
Уникальные ключи работают по всей таблице.
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39226655
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос такой
получаю массив на клиенте с данными (lic_sch,year_mon_record,previous_reliable, following_reliable, existence_lic_sch,previous_readings,following_readings)

как мне правильно проапдейтить таблицу dirty_data по совпадению полей lic_sch,year_mon_record ?

естественно через хранимку(передать параметры я могу в нее).
...
Рейтинг: 0 / 0
как в mysql получить первое число месяца текущего времени
    #39226723
olegon7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
записей 50 тыс
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 2 из 3
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как в mysql получить первое число месяца текущего времени
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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