Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
Есть триггер в котром нужно проверить два поля их двух таблиц. В одной, скажем, поле to, во второй - maxdate. Дата храниться в таком формате - 01/01/2008 в обоих полях. В триггере нужно проверить такое условие. Если to превышает maxdate, то вывод сообщения, откат и т.п.. Ну что-то типа того IF (one.to > two.maxdate) THEN RAISE NOTICE 'Some error' END IF; Так вот, как дату то сравнить? Тип у полей date. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2008, 22:17 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
авторДата храниться в таком формате - 01/01/2008 в обоих полях. Смеялсо... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. Что именно не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2008, 13:17 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
Зачем мне процедура, зачем now()? Я просто хочу в триггере преобразовать даты (с помощью соответствующих функций) в формат, в котором их могу правильно сравнить. В поле одной таблицы храниться максимальная дата, например, 01/01/2009. А в поле другой таблицы юзер указывает свою дату. И мне нужно, чтобы он не мог сохранить объект, если его дата превышает максимально установленную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2008, 14:52 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
авторЗачем мне процедура, зачем now()? Мозг, раз Вам лень читать доку я привел вам пример. Вы наверное сильно удивитесь узнав что триггеры это те же функции. Доступ к полям строки осуществляется через new или old. Жаль что Вы этого не могли знать ). Как получить дату из какой-либо строки другой таблицы - читайте мануал. авторЯ просто хочу в триггере преобразовать даты (с помощью соответствующих функций) в формат, в котором их могу правильно сравнить. Вы бредите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2008, 15:31 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
Всё это я знаю. Я просто хотел узнать с помощью каких библиотечных функций можно преобразовать дату из такого формата дд/мм/гггг в формат (в timestamp, например), в котором можно будет их сравнить как даты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2008, 15:53 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
с помошью приведения типов Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2008, 17:34 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
Вот, вроде бы это то,что нужно. Спасибо, Степан :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2008, 18:12 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
m0zgВот, вроде бы это то,что нужно. Спасибо, Степан :)У вас даты хранятся как строки??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2008, 21:50 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
авторУ вас даты хранятся как строки??? +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 06:56 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
хотя вроде написал авторТип у полей date. Наверное нужна более высокая точность именно при сравнении :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 06:57 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
ChameLe0nхотя вроде написал авторТип у полей date.Тогда что за пурга про формат? Автор что-то не домозговал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 11:46 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
m0zgВот, вроде бы это то,что нужно. Спасибо, Степан :) оно то, наверное нужно, только куда нужнее хранить дату в формате date или за надобностью в timestamp а не varchar . Еще очень неплохо почитать что ЕСТЬ для машини ВРЕМЯ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 13:28 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
Да, я стормозил, ничего преобразоввывать не нужно, всё и так сравнивается. Теперь другой вопрос. Вот в одной таблице поле с датой начала показа рекламы, допустим 20/05/2008 и датой конца показа 30/05/2008. В другой таблице есть поле с максимальным кол-вом дней показа (тип int), допустим 20. И теперь мне нужно проверять, чтобы пользователь не смогу выставить дату общего показа больше, чем кол-во дней. Т.е. IF(NEW.seconddate > NEW.firstdate + макс_дни_показа) THEN RAISE EXCEPTION бла-бла-бла END IF; Так можно сделать? Или как вообще проверить то? Т.е. можно но ли прибавить к полю типа date поле типа int и получить нужный результат сравнения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 14:32 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
Т.е. мне нужно чтоб к числу месяца прибавилось значение кол-ва дней и уже после сложения сравнение шло с датами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 14:40 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
m0zgДа, я стормозил, ничего преобразоввывать не нужно, всё и так сравнивается. Теперь другой вопрос. Вот в одной таблице поле с датой начала показа рекламы, допустим 20/05/2008 и датой конца показа 30/05/2008. В другой таблице есть поле с максимальным кол-вом дней показа (тип int), допустим 20. И теперь мне нужно проверять, чтобы пользователь не смогу выставить дату общего показа больше, чем кол-во дней. Т.е. IF(NEW.seconddate > NEW.firstdate + макс_дни_показа) THEN RAISE EXCEPTION бла-бла-бла END IF; Так можно сделать? Или как вообще проверить то? Т.е. можно но ли прибавить к полю типа date поле типа int и получить нужный результат сравнения? Не проверял: Код: plaintext 1. 2. 3. 4. 5. Может будет нужо кастов добавить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 15:55 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2008, 15:59 |
|
||
|
Сравнение дат в триггере
|
|||
|---|---|---|---|
|
#18+
m0zgЕсть триггер в котром нужно проверить два поля их двух таблиц. В одной, скажем, поле to, во второй - maxdate. Дата храниться в таком формате - 01/01/2008 в обоих полях. В триггере нужно проверить такое условие. Если to превышает maxdate, то вывод сообщения, откат и т.п.. Ну что-то типа того IF (one.to > two.maxdate) THEN RAISE NOTICE 'Some error' END IF; Так вот, как дату то сравнить? Тип у полей date. Так берите и сравнивайте, в чем проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2008, 19:00 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35323691&tid=2004337]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 376ms |

| 0 / 0 |
