Date and time period query
Your WHERE clause has two parts that deal with date and time. The date part is OK but the time part isn't doing what you want. You need to extract only the time from the timestamp values, with TIME(date_time):

WHERE 
          -- date part
      date_time &gt;= '2014-01-01' 
  AND date_time  &lt; '2014-04-01'    -- minor correction
          -- time part
  AND TIME(date_time) &gt;= '08:00:00' 
  AND TIME(date_time)  &lt; '20:00:00'


The whole query:

SELECT 
    st.id, 
    DATE(ip.date_time) AS mydate, 
    TIME(ip.date_time) AS mytime, 
    ip.price
FROM 
    station AS s
    INNER JOIN item_price AS ip 
    ON st.id = ip.station
WHERE 
          -- date part
      ip.date_time &gt;= '2014-01-01' 
  AND ip.date_time  &lt; '2014-04-01'    -- minor correction
          -- time part
  AND TIME(ip.date_time) &gt;= '08:00:00' 
  AND TIME(ip.date_time)  &lt; '20:00:00'
ORDER BY 
    ip.date_time ;