1樓:匿名使用者
create table 銷售(
城市 char(10) not null,
產品 char(10) not null,
單價 float not null,
數量 int not null,
時間 datetime not null
)-----2023年
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')
--2023年
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)
asselect * 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)
--儲存查詢 修改後面的年、月。如這個地方就是2023年,2月。這個地方年度對比,輸入2023年
--就是作為今年。
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 時間
這個地方就把時間轉換了,後面就可以省去相應轉換,提高效率.
sql日期格式轉換
到sql server2005資料管理系統中把日期的顯示方式有多種,你可以到系統中把日期設定成yyyy mm dd格式儲存 舉例如下 select convert varchar 10 getdate 120 2006 05 12 select convert varchar,getdate 120...
sql中日期函式的用法,sql 中Dateadd()函式的用法
1.dateadd i n d 將一個日期加上一段期間後的日期。i 設定一個日期 date 所加上的一段期間的單位。譬如 interval d 表示 n的單位為日。i的設定值如下 yyyy year 年 q quarter 季 m month 月 d day 日 w weekday 星期 h hou...
真正懂SQL計算日期的進
select tmp.dt 7 startdt,tmp.dt enddt from select rownum rn,to char sysdate rownum,day xq,sysdate rownum dt from dual connect by rownum 8 tmpwhere tmp....