Mysql如何按照日期对比数据

查看:97
本文介绍了Mysql如何按照日期对比数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

-- phpMyAdmin SQL Dump
-- version 4.0.10.14
-- http://www.phpmyadmin.net
--
-- 主机: localhost:3306
-- 生成日期: 2016-08-24 00:16:24
-- 服务器版本: 5.6.30-cll-lve
-- PHP 版本: 5.6.20

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- 数据库: `student`
--

-- --------------------------------------------------------

--
-- 表的结构 `student`
--

CREATE TABLE IF NOT EXISTS `student` (
  `id` varchar(20) NOT NULL,
  `name` varchar(50) NOT NULL,
  `fraction` int(20) NOT NULL,
  `date` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- 转存表中的数据 `student`
--

INSERT INTO `student` (`id`, `name`, `fraction`, `date`) VALUES
('1', 'student', 100, '2016-08-23'),
('1', 'student', 95, '2016-08-22'),
('2', 'student2', 100, '2016-08-23'),
('2', 'student2', 200, '2016-08-22'),
('3', 'student3', 350, '2016-08-23'),
('3', 'student3', 450, '2016-08-22'),
('4', 'student4', 50, '2016-08-23'),
('4', 'student4', 100, '2016-08-22'),
('5', 'student5', 900, '2016-08-23'),
('5', 'student5', 930, '2016-08-22');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


MYSQL中的数据

需求:
按照下面最终目的
对比 昨天和前天的数据
(因为每天都要对比最近两天的数据)

需要sql查询语句来实现以下效果

解决方案

select t1.name as 姓名
, t1.fraction as 昨天分数
, t2.fraction as 前天分数
, current_date as 今天日期
from
(
select id,name,fraction from student
where date = (current_date - interval 1 day) -- 昨天
) t1
left outer join
(
select id,fraction from student
where date = (current_date - interval 2 day) -- 前天
) t2
on t1.id = t2.id

这篇关于Mysql如何按照日期对比数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆