Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Оператор CURDATE() не работает (Barkas) 01/11/2008 - 01:58:22
      Re: Оператор CURDATE() не работает (bac) 01/11/2008 - 07:41:32

> Original message text:
> From: Barkas - 01/11/2008 - 01:58:22
> Subject:Оператор CURDATE() не работает
> -----------------
> Всем здрасте, кто читает в данный моммент мое сообщение. Суть проблемы в следующем. Создаю таблицу в MySQL:
> CREATE TABLE Transactions
> -> (
> -> TransID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
> -> OrderID INT NOT NULL,
> -> DVDID SMALLINT NOT NULL,
> -> DATEOut DATE NOT NULL,
> -> DATEDue DATE NOT NULL,
> -> DATEIn DATE NOT NULL,
> -> FOREIGN KEY (OrderID) REFERENCES Orders (OrderID),
> -> FOREIGN KEY (DVDID) REFERENCES DVDs (DVDID)
> -> )
> -> ENGINE=INNODB;
>
> Потом пытаюсь заполнить таблицу:
>
> INSERT INTO Transactions (OrderID, DVDID, DateOut, DateDue)
> -> VALUES (1, 1, CURDATE(), CURDATE()+3),
> -> (1, 4, CURDATE(), CURDATE()+3),
> -> (1, 8, CURDATE(), CURDATE()+3),
> -> (2, 3, CURDATE(), CURDATE()+3),
> -> (3, 4, CURDATE(), CURDATE()+3),
> -> (3, 1, CURDATE(), CURDATE()+3),
> -> (3, 7, CURDATE(), CURDATE()+3),
> -> (4, 4, CURDATE(), CURDATE()+3),
> -> (5, 3, CURDATE(), CURDATE()+3),
> -> (6, 2, CURDATE(), CURDATE()+3),
> -> (6, 1, CURDATE(), CURDATE()+3),
> -> (7, 4, CURDATE(), CURDATE()+3),
> -> (8, 2, CURDATE(), CURDATE()+3),
> -> (8, 1, CURDATE(), CURDATE()+3),
> -> (8, 3, CURDATE(), CURDATE()+3),
> -> (9, 7, CURDATE(), CURDATE()+3),
> -> (9, 1, CURDATE(), CURDATE()+3),
> -> (10, 5, CURDATE(), CURDATE()+3),
> -> (11, 6, CURDATE(), CURDATE()+3),
> -> (11, 2, CURDATE(), CURDATE()+3),
> -> (11, 8, CURDATE(), CURDATE()+3),
> -> (12, 5, CURDATE(), CURDATE()+3),
> -> (13, 7, CURDATE(), CURDATE()+3);
> ERROR 1364 (HY000): Field 'DATEIn' doesn't have a default value
>
> Затем делаю изменения в таблице:
>
> alter table transactions
> -> modify datein date;
> Query OK, 0 rows affected (0.14 sec)
> Records: 0 Duplicates: 0 Warnings: 0
>
> Затем снова пытаюсь ввести данные:
>
> INSERT INTO Transactions (OrderID, DVDID, DateOut, DateDue)
> -> VALUES (1, 1, CURDATE(), CURDATE()+3);
> ERROR 1292 (22007): Incorrect date value: '20081032' for column 'DATEDue' at row 1
>
> Как видите ничего не выходит. Почему не работает оператор CURDATE()+3, то есть при изменении текущей даты 10 месяц не меняется на 11? Что за глюк такой? Использую версию MySQL 5.0. Если кто нить что нить знает, отпишите пожалуйста, заранее спасибо.
>
>
>
>


From: bac - 01/11/2008 - 07:41:32
Subject:Оператор CURDATE() не работает
-----------------
1. Первом варианте вам же четко говорит система что надо задать
DATEIn (ведь у вас определено так -DATE NOT NULL)
2. Во втором варианте используйте DATE_ADD()
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
34407



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |