You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:05:35