SQL语句基础知识(一)
1. 随机生成指定范围的日期
--生成一段时间内的随机时间
declare @Date_start datetime
declare @Date_end datetime
set @Date_start= '2019-06-01'
set @Date_end=getdate()
select 时间=dateadd(second,abs(checksum(newid()))%(datediff(second,@Date_start,@Date_end)+1),@Date_start)
精确到秒, 如果要精确到分钟需要把second改成minute
2. 循环插入N条数据
--循环执行插入10000条数据
declare @ID int
declare @datet datetime
declare @placecode int
declare @Date_start datetime
declare @Date_end datetime
begin
set @ID=1
set @datet='2019-09-01 17:22:24.990'
set @placecode=@ID
set @Date_start= '2019-09-01 00:22:24.990'
set @Date_end= '2019-09-30 17:22:24.990'
while @ID<=10000
begin
insert into tb
values(@datet,@placecode)
set @ID=@ID+1
set @datet=dateadd(second,abs(checksum(newid()))%(datediff(second,@Date_start,@Date_end)+1),@Date_start)
set @placecode=@ID
end
end
循环变量@ID,控制循环10000次,
@datet 和 @placecode 为插入数据,
@Date_start 和 @Date_end 控制随机生成的日期起止时间.
begin 和 end 控制执行代码块
declare 定义变量
3.解决中林的问题(按照小时统计销售额)
select datepart(hh,time) as 时间, COUNT(money) as 销售额
from tb
where time between '2019-09-01 00:00:00.000' and '2019-09-10 00:00:00.000'
group by datepart(hour,time)
datepart 去取出时间中的一部分做为条件
比如: hour minute second 等
? 中林是谁
哦 我的一个好友!