Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
не получается создать запрос, который выводил бы все даты за следующий месяц имеющиеся в таблице. Есть вот такой запрос, он просто выводит нужную мне информацию: $result = pg_Exec ($conn, "SELECT state, name, surname, date, id, vocation, stucture, company, photo, mail from information order by date;"); Но мне необходимо что бы скрипт запущенный кроном в определенное время (каждое 29 число месяца) выдавалбы мне эту информацию на следующий месяц. Уже почитал: http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT, но че то не совсем понял! =( Подскажите как мне изменить запрос. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 10:12 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
choomне получается создать запрос, который выводил бы все даты за следующий месяц имеющиеся в таблице. Есть вот такой запрос, он просто выводит нужную мне информацию: $result = pg_Exec ($conn, "SELECT state, name, surname, date, id, vocation, stucture, company, photo, mail from information order by date;"); Но мне необходимо что бы скрипт запущенный кроном в определенное время (каждое 29 число месяца) выдавалбы мне эту информацию на следующий месяц. Уже почитал: http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT, но че то не совсем понял! =( Подскажите как мне изменить запрос. Спасибо. Нифига не понял... Может имелось в виду вот это? select * from information where date_trunc('month', date) = date_trunc('month', now() + '1 Month'::Interval) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 12:40 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
Мне из таблицы information нужно взять информацию из столбцов: state, name, surname, date, id, vocation, stucture, company, photo, mail поле дата это определенные даты событий. так вот мне нужны именно те даты которые будут в следующем месяце. т.е. (на пример) все праздники которые состоятся в феврале. select * from information where date_trunc('month', date) = date_trunc('month', now() + '1 Month'::Interval) а можно по подробней об этом запросе что тут к чему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 13:01 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
Код: plaintext только вместо вашего перечисления полей тут написано Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 13:18 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
"select * from informationwhere date_trunc('month', date) = date_trunc('month', now() + '1 Month'::Interval);"); А можно по подробнее? Что означает вот это: date_trunc('month', date) = date_trunc('month', now() + '1 Month'::Interval) я так предполагаю, что берется текущая дата и увеличивается на месяц, но какой формат даты? у меня в БД он день.месяц.год ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 18:51 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
choom"select * from informationwhere date_trunc('month', date) = date_trunc('month', now() + '1 Month'::Interval);"); А можно по подробнее? Что означает вот это: date_trunc('month', date) = date_trunc('month', now() + '1 Month'::Interval) я так предполагаю, что берется текущая дата и увеличивается на месяц, но какой формат даты? у меня в БД он день.месяц.год Лучше для себя разобрать это по функциям и понять, что к чему. Все указанные функции есть в документации: 9.9. Date/Time Functions and Operators. Now() - возвращает текущую дату и время можешь заменить на что-нибудь свое '2007-12-15'::Date Date_Trunc(VARCHAR, TIMESTAMP) - Обрезает дату. В данном случае до первого числа месяца 00:00:00. TIMESTAMP + INTERVAL = TIMESTAMP - операция увеличения текущего даты/времени на интервал. В данном случае - на 1 месяц. Итого, в правой части я беру текущую дату, увеличиваю ее на 1 месяц, обрезаю до 1 числа месяца и сравниваю с левой частью, где я дату так же обрезаю по 1-е число месяца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 07:07 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
choomя так предполагаю, что берется текущая дата и увеличивается на месяц, но какой формат даты? у меня в БД он день.месяц.год Если вы имеете в виду, что у вас поле типа Date или TimeStamp, то вы ошибаетесь, формат даты у вас не "день.месяц.год", а четырехбайтное (восьми для timestamp) число. А вот отображение даты может быть уже каким угодно, в том числе и "день.месяц.год.", причем это зависит не от сервера, а от клиента. А вот постгресу дату лучше передавать в таком виде: '2001-09-28 01:00:00'::TimeStamp '2001-09-28'::Date ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 07:14 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
Просто у меня в базе уже много записей с форматом день.месяц.год, все их переделывать не возможно, может это как то можно обойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 14:26 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
choomПросто у меня в базе уже много записей с форматом день.месяц.год, все их переделывать не возможно, может это как то можно обойти? Тип поля какой? TEXT? VARCHAR? Если так, то лучше все-таки не полениться и один раз все переделать. Например, так. ALTER TABLE "public"."a_test" ALTER COLUMN "datum" TYPE DATE USING (substr(datum, 7, 4) || '-' || substr(datum, 4, 2) || '-' || substr(datum, 1, 2))::Date; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2008, 10:25 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
Тип поля text. а что делают эти команды: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2008, 12:59 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
choomТип поля text. а что делают эти команды: Приводят поле к нужному формату? Может стоит почитать документацию, все-таки? Код: plaintext 1. Код: plaintext 1. Код: plaintext 1. очень рекомендую сначала посмотреть Код: plaintext 1. 2. Если не преобразовать поле в дату, все преобразования текста в дату придется проделывать уже в самих запросах. Индексы создавать соответствующие, короче проблем и тормозов не обрешься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2008, 13:47 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
Если сделать типа данных date то некоторые скрипты, которые связаны с этой таблицей не работают! =((( Может есть какойто способ чтоб оставить тип данных text? Есть вот скрипт который вытаскивает информацию о датах за несколько дней до наступления. может можно его переделать, чтоб он выводил всю информацию за месяц? Я понимаю что не правильно ставлю вопрос. Но сам я не могу врубиться. Документацию читаю, но не все понимаю! Если не трудно подмагните немножко! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2008, 14:31 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
choomЕсли сделать типа данных date то некоторые скрипты, которые связаны с этой таблицей не работают! =((( Может есть какойто способ чтоб оставить тип данных text? Есть вот скрипт который вытаскивает информацию о датах за несколько дней до наступления. может можно его переделать, чтоб он выводил всю информацию за месяц? Я понимаю что не правильно ставлю вопрос. Но сам я не могу врубиться. Документацию читаю, но не все понимаю! Если не трудно подмагните немножко! Попробуйте в изначальном условии WHERE, который я предлагал сделать такую шнягу: Код: plaintext 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2008, 14:38 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
choomПросто у меня в базе уже много записей с форматом день.месяц.год, все их переделывать не возможно, может это как то можно обойти? Если сделать типа данных date то некоторые скрипты, которые связаны с этой таблицей не работают! =((( Может есть какойто способ чтоб оставить тип данных text?используйте в выражении where функцию to_date choomЕсть вот скрипт который вытаскивает информацию о датах за несколько дней до наступлениякакой для этого используется запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2008, 16:09 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
[quot LeXa NalBatиспользуйте в выражении where функцию to_date [/quot] Кстати, да! Я про нее просклерозил. ;) Но все-равно тормоз получается. И выражения индексов придется по функциям строить. Если бы дата еще хранилась в виде 20070815, а не передом назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 06:05 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
Вот мой запрос: Код: plaintext 1. Вот такая вот ошибка вываливается, не пойму в чем опять у меня загвозка. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 10:45 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
Kruchinin Pahan имелось в виду вот это? select * from information where date_trunc('month', date) = date_trunc('month', now() + '1 Month'::Interval) это очень плохой стиль. Как с точки зрения поюзания индексов, что, возможно, автору неважно, так и с т.з. разногодности месяцев :). По возможности надо все вычисления перенсти на параметр, а не тащить их на поля таблицы. т.е. Код: plaintext как написать выражения/ф-ии для prevmonthlast(...)/nextmonthfirst(...) - дело десятое - Код: plaintext 1. , да, и пользуя резервированное слово date для имени (столбца или таблицы или т.п.) не забывайте о пользовании кавычками для имен - снизите вероятность ошибки парсера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 11:13 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
поправочка. нужно таки WHERE "date" >= thismonthfirst(...) AND "date"<nextmonthfirst(...) и date_trunc('month',now())::date AS this_first соотв-нно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 11:17 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
Я понимаю что туплю, но как это обьединить в один запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 11:22 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
вы уже сообщали, каков тип важего поля date? (а если текстовый - то каков еще и формат хранения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 11:27 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
ps если все-тки датный или таймстамптный , то просто соберите всё в одно меcто Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 11:35 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
В том то и проблема что тип данных text! А меня его уже не получится, так как еще несколько крупных скриптов придется переделать, а я честно говоря даже не знаю как это сделать, потому что еще не разобрался как они работают!!! =((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 13:31 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
choomВ том то и проблема что тип данных text! простите пжалста, но вы читаете, что вам пишут? если да - то почему не отвечаете? еще раз: будте столь любезны, если поле текстовое, опишите формат хранения даты. (ну, и, заодно, не просветите - почему нельзя преобразовать это ущербное поле, вернее добавить поле нормального формата, залить в него данные и т.д. и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 14:46 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
Дата заносится в формате дд.мм.гггг. В поле содержится большое количество данных, каким образом я смогу перенести из в другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2008, 15:53 |
|
||
|
DATETIME-CURRENT
|
|||
|---|---|---|---|
|
#18+
choomДата заносится в формате дд.мм.гггг. В поле содержится большое количество данных, каким образом я смогу перенести из в другое? Код: 1. 2. 3. 4. 5. Хотя, на больших объемах работать будет медленно. Все-таки рекомендую если пока данных немного, по возможности переделать такие узкие места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2008, 06:04 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35061752&tid=2004722]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 311ms |

| 0 / 0 |
