如何在SQL中将date和time两列合并为slot_date_time列?
解决方案
当然可以实现这个需求!你只需要在SQL查询语句中使用字符串拼接函数,把s.date和s.time两个字段合并成一个新的字段,并指定别名为slot_date_time就好。
修改后的SQL查询代码
在MySQL中,我们可以用CONCAT()函数来完成字段拼接:
$sql = "SELECT d.doctor_name, a.patient_name, CONCAT(s.date, ' ', s.time) AS slot_date_time FROM appointments AS a LEFT JOIN doctors AS d ON d.id = a.doctor_id LEFT JOIN slots AS s ON s.id = a.slot_id WHERE s.date > '2019-10-01' ORDER BY d.doctor_name DESC ";
完整的PHP代码示例
$sql = "SELECT d.doctor_name, a.patient_name, CONCAT(s.date, ' ', s.time) AS slot_date_time FROM appointments AS a LEFT JOIN doctors AS d ON d.id = a.doctor_id LEFT JOIN slots AS s ON s.id = a.slot_id WHERE s.date > '2019-10-01' ORDER BY d.doctor_name DESC "; $result = $mysqli->query($sql); echo '<pre>'; while ( $row = $result->fetch_assoc() ) { print_r($row); } echo '</pre>';
最终输出效果
运行修改后的代码后,你会得到类似这样的输出:
Array ( [doctor_name] => Khaled [patient_name] => Nawaz [slot_date_time] => 2019-10-11 02:01 ) Array ( [doctor_name] => Khaled [patient_name] => Anik [slot_date_time] => 2019-10-07 02:31 ) Array ( [doctor_name] => Khaled [patient_name] => Manik [slot_date_time] => 2019-10-02 03:31 )
简单解释一下:CONCAT(s.date, ' ', s.time)会把日期、一个空格和时间字符串拼接在一起,AS slot_date_time给这个拼接后的结果指定了别名,这样在PHP的结果集中就能通过slot_date_time这个键来访问合并后的时间字段啦。
内容的提问来源于stack exchange,提问作者Shibbir
相关产品推荐
相关产品推荐

