我是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')))