sql >> データベース >  >> RDS >> Sqlserver

ストアドプロシージャのwhileループの時間をどのように比較できますか?

    すべての DATETIME を生成したい場合 期間内の値 [@StartDate, @EndDate] "tally" テーブル を使用できます :

    SET NOCOUNT ONGO-- DROP TABLE dbo.NumbersCREATE TABLE dbo.Numbers ( Num INT IDENTITY(0,1), CONSTRAINT PK_Numbers_Num PRIMARY KEY (Num));GO-- 0 から 9999INSERT までのすべての値を生成しますdbo.Numbers DEFAULT VALUES GO 10000 -- diff の場合はさらに数字を挿入できます。これらの 2 つの日付/時刻値の間が 13 日を超えています (この上限を計算するために 2 分の frecv. を使用しました)  

    そしてシンプルな SELECT ステートメント

    DECLARE @StartDate DATETIME2(0), @EndDate DATETIME2(0), @Frequency TINYINTSELECT @StartDate ='2015-04-17 11:00:00', @EndDate ='2015-04-17 11 :15:00'、@周波数 =2; -- MinutesSELECT n.Num, DATEADD(MINUTE, n.Num*@Frequency, @StartDate) AS RangeStart /*, CASE WHEN DATEADD(MINUTE, (n.Num + 1)*@Frequency, @StartDate)> @EndDate THEN @EndDate ELSE DATEADD(MINUTE, (n.Num + 1)*@Frequency, @StartDate) END AS RangeEnd */FROM dbo.Numbers nWHERE n.Num <=DATEDIFF(MINUTE, @StartDate, @EndDate) / @Frequency/ *Num RangeStart RangeEnd----------- --------------------------- -------- -------------------0 2015-04-17 11:00:00 2015-04-17 11:02:001 2015-04-17 11:02:00 2015-04-17 11:04:002 2015-04-17 11:04:00 2015-04-17 11:06:003 2015-04-17 11:06:00 2015-04-17 11:08:004 2015-04-17 11:08:00 2015-04-17 11:10:005 2015-04-17 11:10:00 2015-04-17 11:12:006 2015-04-17 11:12:00 2015-04-17 11:14:007 2015-04-17 11:14:00 2015-04-17 11:15:00* //  


    1. java.sql.SQLSyntaxErrorException:不明な列.JPAエンティティの問題?

    2. SQL:実転置

    3. FILESTREAM対応データベースのバックアップと復元

    4. MySQLワークベンチでは、接続用のユーザー名/パスワードは何ですか?