2013-09-08 3 views
0

У меня странное что-то происходит с моим сохраненным proc. Я передаю int в хранимую процедуру - когда я передаю значение как эпоху, когда хранимая процедура работает , пропуская то же значение, что и int в миллисекундах, это НЕ РАБОТАЕТ Прохождение 1360292312 (int) в FROM_UNIXTIME (int) FromDate) работы (дать правильный перевод)Передача миллисекунд в хранимую процедуру mySQL

проходящее 1360292312000 (INT) в FROM_UNIXTIME (FromDate/1000) не работает (не дает мне то, что я ожидал)

почему это - мне нужно, чтобы изменить тип для bigINT?

+0

Это должно работать, и правильно работает в моем тестировании. Вы уверены, что 'fromDate' содержит значение' 1360292312000', как и ожидалось? –

+0

Опубликовать определение хранимой процедуры. Вполне возможно, что вам нужен более крупный тип INT для параметра. –

+0

абсолютно -i мог загрузить мой proc, но не уверен, как на этом сайте вот код BETWEEN FROM_UNIXTIME (fromDate/1000) И FROM_UNIXTIME (toDate/1000) вот что я передаю CALL reportLogExceptions ('3', '- 1 ', 1365250024000,1369827488000) теперь я знаю, что эти даты находятся в базе данных, потому что я использовал их, чтобы получить диапазон для ints - это делает меня сумасшедшим! – Portlight

ответ

0

Это проблема с максимальным значением signed int. Вы должны разделить число на 1000, прежде чем отправлять его на номер FROM_UNIXTIME(). Что еще более важно, оно должно быть меньше или равно максимальному значению подписанного int.

signed int возможно только до 2147483647 и от того, что я вижу FROM_UNIXTIME работ или любой ценности до этого. Если вы передадите 2147483647 + 1, он возвращает null.

запросов и результаты -

SELECT FROM_UNIXTIME(1360292312), #February, 08 2013 02:58:32+0000 
     FROM_UNIXTIME(1360292312000), #(null) 
     FROM_UNIXTIME(1360292312000/1000), #February, 08 2013 02:58:32+0000 
     FROM_UNIXTIME(2147483647), #January, 19 2038 03:14:07+0000 
     FROM_UNIXTIME(2147483648), #(null) 
     FROM_UNIXTIME(4294967295) #(null) 

см скрипку examples

типа Integer manual

FROM_UNIXTIME manual