Мод интерпретации кода SQL и CStr

Мне дали пример кода SQL, и мне нужно понять, что он делает, прежде чем преобразовать его в другой язык.

Может кто-нибудь объяснить мне на английском, что делает этот код, пожалуйста?

=IIF(Fields!Time.Value\60 < 10, "0" + CStr(Fields!Time.Value\60), CStr(Fields!Time.Value\60)) + ":" + IIF(Fields!Time.Value mod 60 < 10, "0" + FormatNumber(Fields!Time.Value mod 60,0), FormatNumber(Fields!Time.Value mod 60,0))

Большое большое спасибо


person user1075081    schedule 18.01.2016    source источник
comment
Этот код должен быть SQL??? В любом случае, это далеко не ANSI SQL, поэтому вам лучше пометить продукт dbms, чтобы привлечь больше внимания.   -  person jarlh    schedule 18.01.2016
comment
Мне так и сказали - поправлю теги если получится   -  person user1075081    schedule 18.01.2016
comment
Так из какого контекста вы взяли это утверждение? Какой-то инструмент отчетности, использующий сценарии в стиле VB?   -  person TT.    schedule 18.01.2016


Ответы (1)


Требуется время (в секундах) и преобразование его в формат «мм:сс». Как бы то ни было, это больше похоже на сценарий VB, чем на SQL. В любом случае, Cstr просто преобразуется в строку, mod дает остаток от деления, например 16 mod 10 дает вам 6, 26 mod 10 также дает вам 6.

Первая часть использует Fields!Time.Value/60 для получения времени в минутах, а затем, когда это число меньше 10, добавляет 0 к началу:

    |   If seconds less than 10 |  Append 0 to left of seconds   |  else just use seconds    |

=IIF( Fields!Time.Value\60 < 10 , "0" + CStr(Fields!Time.Value\60), CStr(Fields!Time.Value\60)) 

Следующая часть в основном делает то же самое с секундами, часть, но использует мод для получения количества секунд, например, 97 секунд нужно разбить на «01:37», поэтому 97 / 60 используется для получения 1, затем поскольку это меньше 10, к нему добавляется «0», затем 97 mod 60 используется для получения секунд, что дает 37, поскольку это больше 10, ничего не добавляется.

person GarethD    schedule 18.01.2016
comment
Спасибо - именно тот ответ, который мне был нужен - person user1075081; 18.01.2016