MYSQL记录获取2个日期

时间:2015-04-07 12:25:27

标签: php mysql

目前我要求如果时间是当天中午之前,那么它应该只采用当天的上一天的item_2值。对于其他人来说,它将采取适当的价值观。

    id  |   item_1 | item_2 | date
    1       205         3       2015-04-07
    2       215         35      2015-04-06
    3       225         15      2015-04-05
    4       235         315     2015-04-04

预计结果时间是中午之前

    id  |   item_1 | item_2 |   sum |    date
    1       205         35      240     2015-04-07
    2       215         35      250     2015-04-06
    3       225         15      240     2015-04-05
    4       235         31      266     2015-04-04

预计结果是在中午之后

    id  |   item_1 | item_2 |   sum |    date
    1       205         3       208     2015-04-07
    2       215         35      250     2015-04-06
    3       225         15      240     2015-04-05
    4       235         31      266     2015-04-04

可以在php中使用日期和时间,以及如何在同一查询中管理prev和当天记录。我尝试使用子查询,但我认为它也可以通过其他方式完成。

提前致谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您必须在查询中使用 CASE

试试这个:

SET @time := 'BFNOON';
SET @date := '2015-04-07 00:00:00';

SELECT id, item_1, item_2, (item_1 + item_2) AS sum_item, dates FROM (
SELECT id, item_1,
(CASE
WHEN (@time = 'BFNOON' AND dates = @date) THEN 
(
SELECT item_2 FROM records WHERE dates < @date ORDER BY dates DESC  LIMIT 1
) ELSE 
item_2
END ) item_2
, dates 

FROM records ) records

注意:删除声明和 替换@time ='BFNOON'在中午之前或之后检查 和@date,你的日期值是今天

此处sqlfiddle例如:http://sqlfiddle.com/#!9/f5dbe/10