我有时间在前:10.45,13.00 现在我需要检查那个时间作为日期在哪里
我的查询是
SELECT T.*,
(SELECT a.driver_id
FROM tbl_assigned_drivers a
WHERE a.vehicle_id=t.id
AND a.from_time<=T.time
AND a.to_time >=T.time
AND a.status='1') AS driver
FROM
(SELECT id, user_id, stime AS TIME, splace, slat, slng, eplace, elat, elng, status, '1' AS TYPE
FROM `tb_shifts`
UNION ALL SELECT id, user_id, etime AS TIME, eplace AS splace, elat AS slat, elng AS slng, splace AS eplace, slat AS elat, slng AS elng, status, '0' AS TYPE
FROM `tb_shifts`) T,
tb_shft_veh s,
tb_trucks_data t
WHERE T.time>=11.54
AND s.register_number=t.register_number
AND s.register_number='AP01TEST'
AND s.shft_id=T.id
AND s.status='1'
ORDER BY T.time ASC
这里
a.from_time,a.to_time in format of "YYYY-MM-DD HH:MM:SS"
T.time in format of "HH:MM"
现在我需要将T.time转换为a.from_time格式
请帮助我......
答案 0 :(得分:0)
感谢所有人, 解决的查询是
select T.*,(SELECT a.driver_id FROM tbl_assigned_drivers a WHERE a.vehicle_id=t.id and a.from_time<=CONCAT(CURDATE()," ",REPLACE(T.time, '.', ':'),":00") and a.to_time >=CONCAT(CURDATE()," ",REPLACE(T.time, '.', ':'),":00") and a.status='1') as driver from (SELECT id,user_id,stime as time,splace,slat,slng,eplace,elat,elng,status,'1' as type FROM `tb_shifts` UNION ALL SELECT id,user_id,etime as time,eplace as splace,elat as slat,elng as slng,splace as eplace,slat as elat,slng as elng,status,'0' as type FROM `tb_shifts`) T,tb_shft_veh s,tb_trucks_data t where T.time>=11.54 and s.register_number=t.register_number and s.register_number='AP01TEST' and s.shft_id=T.id and s.status='1' order by T.time asc
解决方案来自
CONCAT(CURDATE()," ",REPLACE("10.00", '.', ':'),":00")