如何将整数格式Break列值转换为分钟数?SQL技术求助
解决Break列转换为总分钟数的SQL问题
你的需求是把整数格式的Break列按规则转成总分钟数:该列值的前几位代表小时,后两位代表分钟(比如100对应1小时0分=60分钟,130对应1小时30分=90分钟)。
你之前的SQL运行失败,核心问题是逻辑和语法都有问题:你错误地把Break直接当成分钟数传给dateadd,但它实际是HHMM格式的整数;同时dateadd的第三个参数用空字符串''不符合语法要求。
不用绕日期函数,直接通过数学运算就能高效解决:
SELECT (TSH1."Break" / 100) * 60 + (TSH1."Break" % 100) AS TotalMinutes FROM TSH1
Break / 100:取整数部分得到小时数(例如130/100=1)Break % 100:取余数得到分钟数(例如130%100=30)- 小时转成分钟后加上剩余分钟,就是最终的总分钟数
如果遇到小于100的取值(比如50代表0小时50分),这个公式也能正常处理:50/100=0,0*60+50=50,结果正确。
内容的提问来源于stack exchange,提问作者LP81
相关产品推荐
相关产品推荐

