msyql ROUNDING для тарификации FLAT RATE

0

Нужна помощь с округлением значений, я знаю, что ROUND() существует, но это не совсем то, что мне нужно.

Итак, я вычисляю тарифы на звонки в минуту, в которых с фиксированной ставкой любой вызов длится более 60 секунд, будет снят в течение следующей минуты.

Мой запрос идет SEC_TO_TIME (billedsec), чтобы получить минутный эквивалент.

У меня есть 2 вопроса:

  1. Как округлить до полной минуты для значений, которые идут более минуты, говорят, если 1 мин и 15 секунд (00:01:15) должно быть 2 минуты или 13 секунд должно быть полной минуты.

  2. Как рассчитать формат TIME для int или float, чтобы получить фактическую ставку, например, 00:01:00*rate? Это прямой подход?

Спасибо, парни

Теги:

1 ответ

2
Лучший ответ

Ты можешь использовать

FLOOR((billedsec+59)/60)

чтобы получить время, округленное до следующей минуты. 13 секунд до 72/60 = 1 минута, 60 секунд - 119/60 = 1 минута, 61 секунда - 120/60 = 2 минуты, 75 секунд - 134/60 = 2 минуты и т.д.

  • 0
    БЛАГОДАРЮ ВАС! Это сделало работу! О, МОЙ БОГ! ты сделал мою жизнь намного проще. ВВЕРХ ВВЕРХ ВВЕРХ!
  • 0
    Не волнуйтесь. Рад помочь.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню