MySql使用case concat将总小时数的格式从十进制转换为HH:MM

时间:2018-08-25 05:21:33

标签: php mysql

我是sql的新手,任何人都可以帮我解决这个问题。谢谢!

我有一个字段,以分钟为单位显示总时数。如果此字段的值为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格式。但是当我添加了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')))

0 个答案:

没有答案