I have a date range parameter, need to be divided into several dates, and each will have the same time as the parameter.
Not sure what the problem is with ADDTIME , maybe I missed a throw? I can decide what it feels like for string and concat, but I think it should be simpler.
Current output
selectDate time(@s_date) time(@e_date) addtime(date(a.selectDate), time(@s_date)) 1 2016-09-03 08:00:00 16:00:00 08:00:00 2 2016-09-04 08:00:00 16:00:00 08:00:00
Desired output
selectDate time(@s_date) time(@e_date) addtime(date(a.selectDate), time(@s_date)) 1 2016-09-03 08:00:00 16:00:00 2016-09-03 08:00:00 2 2016-09-04 08:00:00 16:00:00 2016-09-04 08:00:00
Possible Solution:
CONCAT(DATE_FORMAT(a.selectDate, '%Y-%m-%d '), DATE_FORMAT(@s_date, '%H:%i:%s')) as start_time,
My big request
select a.selectDate, time(@s_date), time(@e_date), addtime(date(a.selectDate), time(@s_date)) from ( select '1900-01-01' + INTERVAL (aa + (10 * ba) + (100 * ca) + (1000 * da) + (10000 * ea)) DAY as selectDate from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as d cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as e ) a CROSS JOIN (SELECT @s_date := '2016-09-03 08:00:00', @e_date := '2016-09-04 16:00:00') par WHERE selectDate BETWEEN date(@s_date) AND date(@e_date)
source share