我有时间,比如 ex: 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 格式
请帮助我...
最佳答案
感谢大家, 已解决的查询是
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")
关于mysql - 在sql中将时间转换为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42292019/