怎么样用sql语句取到一定时间内的数据,并按时间间隔排列
假如我有 表1
里面数据为1970-1-1 0:0:0至2013-7-11 0:0:0的数据
现在我需要用一条语句
按照5分钟为间隔
将库里的数据显示出来。能不能有加强版,在一段时间,起始时间是可以变动的,时间间隔也是可以变动的查出数据,求指导。 SQL
[解决办法]
传两个参数进去,一个时间间隔,另外一个起始时间,用DATEDIFF函数
用法:DATEDIFF ( datepart , startdate , enddate )
具体的用法在设计器里面输入DATEDIFF,选中按F1帮助查看
[解决办法]
方法是拼接SQL语句,然后使用exec(@sql),还是不会的话,上网搜搜,多学学
[解决办法]
创建一个记录表
SELECT CONVERT(DATETIME,'1970-1-1 0:0:0',121)AS MINDATETIME,CONVERT(DATETIME,'2013-7-11 0:0:0',121)AS MAXDATETIME,
CONVERT(DATETIME,'1970-1-1 0:0:0',121)AS STARTDATETIME,CONVERT(INT,30)AS IntervalValue --单位是分
INTO T_TEST2
DECLARE @STARTDATETIME DATETIME,
@ENDDATETIME DATETIME,
@MINDATETIME DATETIME,
@MAXDATETIME DATETIME
SELECT @MINDATETIME = MINDATETIME,@MAXDATETIME = MAXDATETIME,
@STARTDATETIME = STARTDATETIME,@ENDDATETIME = DATEADD(n,IntervalValue,STARTDATETIME)
FROM T_TEST2
IF @STARTDATETIME >= @MAXDATETIME
BEGIN
RETURN -2
END
IF @ENDDATETIME > @MAXDATETIME
BEGIN
SET @ENDDATETIME = @MAXDATETIME
END
IF @STARTDATETIME <> @MINDATETIME
BEGIN
SET @STARTDATETIME = DATEADD(S,1,@STARTDATETIME)
END
SELECT * FROM T_TEST1
WHERE CREATEDATETIME BETWEEN @STARTDATETIME AND @ENDDATETIME
UPDATE T_TEST2 SET STARTDATETIME = @ENDDATETIME