mysql使用case concat将总小时数的格式从十进制转换为hh:mm

jvlzgdj9  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(227)

我是sql新手,有人能帮我解决这个问题吗?提前谢谢
我有一个名为display total hours in minutes的字段。如果该字段的值为1,则应执行转换查询,并且该值应以hh:mm显示,否则应以十进制格式显示。我可以用sql case语句来执行

new Zend_Db_Expr("CONCAT(FLOOR(att.Total_Hours),':', LPAD(ROUND((att.Total_Hours - FLOOR(att.Total_Hours)) * 60) % 60,2,0)) as Total_Hours")

这个查询工作正常,并将总小时数从十进制格式转换为hh:mm格式。但是这个dosent检查任何条件,当我为此包含case语句时,它抛出一个语法错误。

->joinLeft(array('ET'=>$this->_ehrTables->empType),'emp.Employee_Id=ET.Employee_Type_Id',
                                        array('Display_Total_Hours_In_Minutes' => new Zend_Db_Expr('CASE WHEN ET.Display_Total_Hours_In_Minutes==1 THEN CONCAT(FLOOR(att.Total_Hours),':', LPAD(ROUND((att.Total_Hours - FLOOR(att.Total_Hours)) * 60) % 60,2,0))  ELSE att.Total_Hours END')))

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题