Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

संग्रहीत प्रक्रिया में लूप के समय के बीच तुलना कैसे की जा सकती है?

यदि आप सभी DATETIME उत्पन्न करना चाहते हैं समय अवधि के भीतर मान [@StartDate, @EndDate] तब आप एक "tally" तालिका का उपयोग कर सकते हैं :

SET NOCOUNT ON
GO
-- DROP TABLE dbo.Numbers
CREATE TABLE dbo.Numbers (
    Num INT IDENTITY(0,1), 
    CONSTRAINT PK_Numbers_Num PRIMARY KEY (Num)
);
GO
-- It generates all values from 0 to 9999
INSERT dbo.Numbers DEFAULT VALUES 
GO 10000 -- You can insert more numbers if diff. between those two date/time values is greather than 13 days (I used a frecv. of 2 minutes to computes this maximum limit)

और फिर एक साधारण SELECT बयान

DECLARE @StartDate DATETIME2(0), @EndDate DATETIME2(0), @Frequency TINYINT
SELECT  @StartDate = '2015-04-17 11:00:00',
        @EndDate = '2015-04-17 11:15:00',
        @Frequency = 2; -- Minutes

SELECT  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 n
WHERE   n.Num <= DATEDIFF(MINUTE, @StartDate, @EndDate) / @Frequency
/*
Num         RangeStart                  RangeEnd
----------- --------------------------- ---------------------------
0           2015-04-17 11:00:00         2015-04-17 11:02:00
1           2015-04-17 11:02:00         2015-04-17 11:04:00
2           2015-04-17 11:04:00         2015-04-17 11:06:00
3           2015-04-17 11:06:00         2015-04-17 11:08:00
4           2015-04-17 11:08:00         2015-04-17 11:10:00
5           2015-04-17 11:10:00         2015-04-17 11:12:00
6           2015-04-17 11:12:00         2015-04-17 11:14:00
7           2015-04-17 11:14:00         2015-04-17 11:15:00
*/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पासवर्ड कॉलम को एन्क्रिप्ट कैसे करें

  2. SQL सर्वर डेटाबेस में एक्सेल स्प्रेडशीट कॉलम आयात करें

  3. Sql सर्वर सेवा ब्रोकर

  4. SQL सर्वर में डेटाबेस ऑब्जेक्ट और टेबल डेटा की खोज करना

  5. SQL सर्वर लॉगिन एक्सेस को केवल एक डेटाबेस तक प्रतिबंधित करें