|
|
|
| Помогите пож. ну очень уж нужно.
Требуется в запросе данные одного поля в длинном формате времени перевести в другое поле, но в виде минут с округлением секунд.
Например чтобы 01:02:07 выглядело 63
Заранее благодарен. | |
|
| |
|
|
|
| что значит "округление" секунд? по какму принципу округлять 30 секунд
SELECT FORMAT("01:01:03","hh:nn:ss") AS sTime, DATEDIFF("n",FORMAT("00:00:00","hh:nn:ss"),[sTime]) AS sPeriod
|
| |
|
| |
|
|
|
| Округлять так: если есть хоть одна секунда, то прибовляется одна минута и в итоге выводится количество минут | |
|
| |
|
|
|
| ничего себе округлил :)))
прибавляй к любому исходному времени 59 секунд, далее как описано ниже DATEDIFF к нулю | |
|
| |
|
|
|
| как вариант
hour("01:02:07")*60+minute("01:02:07")+iif(Second("01:02:07") >0,1,0)
|
| |
|
| |
|
|
|
| можно секунды делить на 30, брать целую часть и прибавлять к общим минутам
SELECT FORMAT("01:01:31","hh:nn:ss") AS sTime, DATEDIFF("n",Format("00:00:00","hh:nn:ss"),[sTime])+INT(FORMAT([sTime],"ss")/30) AS sPeriod
|
| |
|
| |
|
|
|
| Все работает, но не так как надо.
Требуется чтобы секунды не обнулялись, например 00:02:00 равнялось 2, а 00:02:01 равнялось 3 | |
|
| |
|
|
|
| прибавляй к исходному времени 59 секунд и бери DATEDIFF от 00:00:00
в принципе значение с нулем секунд может быть не часто (один к шестидесяти), поэтому можешь просто прибавлять заранее одну минуту | |
|
| |
|
|
|
| Это требуется для тарификации разговоров, поэтому всё критично и требует абсолютной точности с этими округлениями.
А можно задать условие? если "ss"=0 то неокругляя выводит минуты, а если "ss">0 то SELECT FORMAT([Кол-во],"hh:nn:ss") AS sTime, DATEDIFF("n",Format("00:00:00","hh:nn:ss"),[sTime])+FORMAT([sTime],"ss") / FORMAT([sTime],"ss") AS sPeriod
а то этот код в случае "ss"=0 пишет ошибку | |
|
| |
|
|
|
| >а то этот код в случае "ss"=0 пишет ошибку
это наверное системная ошибка попытка деления на букву "о"
вы вообще неправильно вопрос ставите - вам ничего не нужно округлять... время отсчитывается с "00" секунд - поэтому просто прибавляйте 1 минуту и отрезайте секунды вообще | |
|
| |
|
|
|
|
Это требуется для тарификации разговоров, поэтому всё критично и требует абсолютной точности с этими округлениями
|
Тогда Вы идете не тем путем. Нудно хранить секунды в формате целое (или длинное целое)
и преобразовывать как надо. | |
|
| |