2012-05-30 3 views
-2

Я должен генерировать значение времени (в минутах) между 5 и 30.The кодом должен работать и генерировать 5-30 минут, но вместо этого я получаю 5-30 секунд:время генерации значений

обновления TABLE1 set column1 = 5 + FLOOR (RAND() * 26);

column1 столбец TIME

Есть предложения?

+2

Какой формат column1? Почему бы вам просто не умножить на 60? –

+0

Формат столбца 1 - время –

+0

Вы читали документ? http://dev.mysql.com/doc/refman/5.0/en/time.html –

ответ

1

Если вы просто хранить несколько секунд или минут, то вы не хранения «время» так column1 не должен быть тип времени ...

Если вы хотите целых минут (в секундах)

update table1 set column1 = (5+FLOOR(RAND()*26)) * 60; 

Если вы хотите частичные минут (в секундах)

update table1 set column1 = (5*60)+FLOOR(RAND()*26*60); 

Если вы просто хотите, целое число минут (от 5 до 30), то исходный запрос должен быть хорошо, как только вы изменить столбец type to int

+0

не работает: Код ошибки: 1292. Неправильное время value: '480' для столбца 'Durata' в строке 4 –

+0

'Durata' должен быть целым или поплавковым типом, а не типом времени – trapper

+0

То же самое, что я получаю большие числа, я думаю, это секунды или что-то в этом роде. Вместо того, чтобы генерировать, как я сказал минут между 5 и 30, я получаю 1082 и т. Д. –

Смежные вопросы