1. sql 日期等于同期日期
r(10) not null,
产品 char(10) not null,
单价 float not null,
数量 int not null,
时间 datetime not null
)
-----2006年
insert into 销售 values ('成都','冰箱',1800,3,'2006-01-24')
insert into 销售 values ('成都','冰箱',1800,3,'2006-01-25')
insert into 销售 values ('成都','冰箱',1800,3,'2006-01-26')
insert into 销售 values ('成都','冰箱',1800,3,'2006-01-27')
insert into 销售 values ('成都','冰箱',1800,3,'2006-01-28')
insert into 销售 values ('成都','冰箱',1800,3,'2006-01-29')
insert into 销售 values ('成都','冰箱',1800,3,'2006-01-30')
insert into 销售 values ('成都','冰箱',1800,3,'2006-01-31')
insert into 销售 values ('成都','冰箱',1800,3,'2006-02-1')
insert into 销售 values ('成都','冰箱',1800,3,'2006-02-2')
insert into 销售 values ('成都','冰箱',1800,3,'2006-02-3')
insert into 销售 values ('成都','冰箱',1800,3,'2006-02-23')
insert into 销售 values ('成都','冰箱',1800,3,'2006-02-24')
insert into 销售 values ('成都','冰箱',1800,3,'2006-02-25')
insert into 销售 values ('成都','冰箱',1800,3,'2006-02-26')
insert into 销售 values ('成都','冰箱',1800,3,'2006-02-27')
insert into 销售 values ('成都','冰箱',1800,3,'2006-02-28')
--2007年
insert into 销售 values ('成都','冰箱',1800,3,'2007-01-24')
insert into 销售 values ('成都','冰箱',1800,3,'2007-01-25')
insert into 销售 values ('成都','冰箱',1800,3,'2007-01-26')
insert into 销售 values ('成都','冰箱',1800,3,'2007-01-27')
insert into 销售 values ('成都','冰箱',1800,3,'2007-01-28')
insert into 销售 values ('成都','冰箱',1800,3,'2007-01-29')
insert into 销售 values ('成都','冰箱',1800,3,'2007-01-30')
insert into 销售 values ('成都','冰箱',1800,3,'2007-01-31')
insert into 销售 values ('成都','冰箱',1800,3,'2007-02-1')
insert into 销售 values ('成都','冰箱',1800,3,'2007-02-2')
insert into 销售 values ('成都','冰箱',1800,3,'2007-02-3')
insert into 销售 values ('成都','冰箱',1800,3,'2007-02-23')
insert into 销售 values ('成都','冰箱',1800,3,'2007-02-24')
insert into 销售 values ('成都','冰箱',1800,3,'2007-02-25')
insert into 销售 values ('成都','冰箱',1800,3,'2007-02-26')
insert into 销售 values ('成都','冰箱',1800,3,'2007-02-27')
insert into 销售 values ('成都','冰箱',1800,3,'2007-02-28')
--存储过程
create proc XIAOSHOU @Year varchar(10),@month varchar(10)
as
select * from 销售 where
( datepart(year,convert(varchar(10),时间,121))=@Year
and datepart(month,convert(varchar(10),时间,121))=@month
and datepart(day,convert(varchar(10),时间,121))<=27 )
or
(( datepart(year,convert(varchar(10),时间,121))+1)=@Year
and datepart(month,convert(varchar(10),时间,121))=@month
and datepart(day,convert(varchar(10),时间,121))<=27 )
or
( datepart(year,convert(varchar(10),时间,121))=@Year
and (datepart(month,convert(varchar(10),时间,121))+1)=@month
and datepart(day,convert(varchar(10),时间,121))>=26 )
or
(( datepart(year,convert(varchar(10),时间,121))+1)=@Year
and (datepart(month,convert(varchar(10),时间,121))+1)=@month
and datepart(day,convert(varchar(10),时间,121))>=26 )
order by right(convert(varchar(10),时间,121),5)
--存储查询 修改后面的年、月。如这个地方就是2007年,2月。这个地方年度对比,输入2007年
--就是作为今年。
execute XIAOSHOU 2007,2
*********查询结果********
成都 冰箱 1800.0 3 2006-01-26
成都 冰箱 1800.0 3 2007-01-26
成都 冰箱 1800.0 3 2007-01-27
成都 冰箱 1800.0 3 2006-01-27
成都 冰箱 1800.0 3 2006-01-28
成都 冰箱 1800.0 3 2007-01-28
成都 冰箱 1800.0 3 2007-01-29
成都 冰箱 1800.0 3 2006-01-29
成都 冰箱 1800.0 3 2006-01-30
成都 冰箱 1800.0 3 2007-01-30
成都 冰箱 1800.0 3 2007-01-31
成都 冰箱 1800.0 3 2006-01-31
成都 冰箱 1800.0 3 2006-02-01
成都 冰箱 1800.0 3 2007-02-01
成都 冰箱 1800.0 3 2007-02-02
成都 冰箱 1800.0 3 2006-02-02
成都 冰箱 1800.0 3 2006-02-03
成都 冰箱 1800.0 3 2007-02-03
成都 冰箱 1800.0 3 2007-02-23
成都 冰箱 1800.0 3 2006-02-23
成都 冰箱 1800.0 3 2006-02-24
成都 冰箱 1800.0 3 2007-02-24
成都 冰箱 1800.0 3 2007-02-25
成都 冰箱 1800.0 3 2006-02-25
成都 冰箱 1800.0 3 2006-02-26
成都 冰箱 1800.0 3 2007-02-26
成都 冰箱 1800.0 3 2007-02-27
成都 冰箱 1800.0 3 2006-02-27
----以上代码可以在查询分析器中运行。累死了!
***********
补充
select 城市,产品,单价,数量,convert(varchar(10),时间,121)as 时间
这个地方就把时间转换了,后面就可以省去相应转换,提高效率.
另外,团IDC网上有许多产品团购,便宜有口碑
2. sql如何查询历史同期记录
select * from 表名 where 表中的相应日期字段 = sysdate
3. mysql中计算出今天,昨天,近一周,近一月数据sql咋写
首先要考虑给数据库减压,意思就是让数据库做最简单的事情。你可以把条件在php里边组装好,然后让mysql只单一的执行查询就好了,php的时间代码给你贴一下吧
<?php
date_default_timezone_set('Asia/Shanghai');
echo"今天:".date("Y-m-dH:i:s")."<br>";
echo"昨天:".date("Y-m-d",strtotime("-1day")),"<br>";
echo"明天:".date("Y-m-d",strtotime("+1day"))."<br>";
echo"一周后:".date("Y-m-d",strtotime("+1week"))."<br>";
echo"一周前:".date("Y-m-d",strtotime("-1week"))."<br>";
echo"一周零两天四小时两秒后:".date("Y-m-dG:H:s",strtotime("+1week2days4hours2seconds"))."<br>";
echo"下个星期四:".date("Y-m-d",strtotime("nextThursday"))."<br>";
echo"上个周一:".date("Y-m-d",strtotime("lastMonday"))."<br>";
echo"一个月前:".date("Y-m-d",strtotime("lastmonth"))."<br>";
echo"一个月后:".date("Y-m-d",strtotime("+1month"))."<br>";
echo"十年后:".date("Y-m-d",strtotime("+10year"))."<br>";
echo'<hr/>';
//php获取今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
echo"今日开始时间戳和结束时间戳",'开始:',$beginToday,'结束:',$endToday,'<br/>';
echo"今日开始时间:",date("Y-m-dH:i:s",$beginToday),'<br/>';
echo"今日结束时间:",date("Y-m-dH:i:s",$endToday),'<br/>';
echo'<hr/>';
//php获取昨日起始时间戳和结束时间戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
echo"昨日开始时间戳和结束时间戳",'开始:',$beginYesterday,'结束:',$endYesterday,'<br/>';
echo"昨日开始时间:",date("Y-m-dH:i:s",$beginYesterday),'<br/>';
echo"昨日结束时间:",date("Y-m-dH:i:s",$endYesterday),'<br/>';
echo'<hr/>';
//php获取上周起始时间戳和结束时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
echo"上周开始时间戳和结束时间戳",'开始:',$beginLastweek,'结束:',$endLastweek,'<br/>';
echo"上周开始时间:",date("Y-m-dH:i:s",$beginLastweek),'<br/>';
echo"上周结束时间:",date("Y-m-dH:i:s",$endLastweek),'<br/>';
echo'<hr/>';
//php获取本月起始时间戳和结束时间戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
echo"本月开始时间戳和结束时间戳",'开始:',$beginThismonth,'结束:',$endThismonth,'<br/>';
echo"本月开始时间:",date("Y-m-dH:i:s",$beginThismonth),'<br/>';
echo"本月结束时间:",date("Y-m-dH:i:s",$endThismonth),'<br/>';
?>
4. 怎样用一条SQL获取同期值和前期值
获取同期值作为表A,获取同期值作为表B,表A与表B进行连接,即可获得同期值和前期值:
selectA.name,A.curAmount,B.lastAmount
from(selectname,sum(amount)='current')A
join(selectname,sum(amount)='current')B
onA.name=B.name
5. sql怎么在一个语句里得到本月、上一个月、去年同期的数据
你好的
有两种方式可以得到你要的结果;
通过关联,把上个月的记录与当前月的记录关联
就能得到你想要的。
另一种方式就是分析函数了。
手机写的费劲,如果需要明天给你写一个。
6. sql如何查询历史同期记录
历年来所有日期相同的记录...
就是说每年的同一个月同一天就是相同的记录吧?
思路是在日期中截取月份,天数。对这两项进行比较。
1 怎样截取:DATE类型或VARCHAR类型的截取方式不同,具体你可以查;
2 查询天数和月份都相同的ID,再根据ID查询完整的记录
以上只是思路.....
7. 怎么用sql查询昨天,今天,明天和本周的记录
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。