SQL:浮点数转小时格式
在 Ms SQL Server 2008 中是否有一种简单的方法来格式化以小时为单位的浮点数?
示例:
- 1.5 -> 01:30
- 9.8 --> 09:48
- 35.25 --> 35:15
非常感谢。
Is there a easy way to format a float number in hours in Ms SQL server 2008?
Examples:
- 1.5 -> 01:30
- 9.8 -> 09:48
- 35.25 -> 35:15
Thanks a lot.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我喜欢这个问题!
I like this question!
其工作原理如下:
从“零”日期开始
添加 1.5 x 60 分钟(即 1.5 小时)
将结果格式化为时间,hh:mm:ss(即格式“108”)
修剪秒数部分
有必要使用 1.5 x 60 分钟而不是 1.5 小时,因为
DATEADD
函数会将偏移量截断为最接近的整数。如果您想要高分辨率偏移,您可以使用SECOND
来代替,适当的缩放(例如小时 * 60 * 60)。This works by:
starting from the "zero" date
adding 1.5 x 60 minutes (i.e. 1.5 hours)
formatting the result as a time, hh:mm:ss (i.e. format "108")
trimming off the seconds part
It is necessary to use 1.5 x 60 minutes instead of 1.5 hours as the
DATEADD
function truncates the offset to the nearest integer. If you want high-resolution offsets, you can useSECOND
instead, suitable scaled (e.g. hours * 60 * 60).当然。简单,但不完全...直接:
另一个可以给出正确结果的选项。您可能需要将其调整为四舍五入分钟并确保两个字段都是 2 位数宽。
Sure. Easy, but not exactly...straightforward:
Another option that will give the correct result. You might need to tweak it to round minutes and to ensure that both fields are 2 digits wide.