1

我已经获得了一个 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))

非常感谢

4

1 回答 1

2

它需要一些时间(以秒为单位),并将其转换为格式“mm:ss”。值得一提的是,这看起来更像是 VB 脚本而不是 SQL。无论如何,Cstr只需转换为字符串,mod给出除法的余数,例如16 mod 10给你626 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)) 

接下来的部分与秒部分基本相同,但是使用mod来获取秒数,例如97秒需要分解为“01:37”,所以97 / 60用于获取1,那么因为这小于 10,“0”被添加到它前面,然后97 mod 60用于获取秒数,它给出 37,因为它超过 10,所以没有添加任何东西。

于 2016-01-18T13:01:40.103 回答