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」圖標。