Thursday, November 7, 2019

เรียกดูข้อมูลทุก 15 นาที

ต้องการเรียกข้อมูลที่ลงท้ายด้วยนาที ที่ 0, 15,30 และ 45


แบบเดิม

SELECT Distinct TagDateTime, Column2, Column3
FROM YourTable
WHERE TagDateTime >=@D1 AND TagDateTime <=@D2
       and (DATEPART(minute,tagdatetime) % 15) = 0
        ORDER BY TagDateTime


อีกแบบ

SELECT TagDateTime, Column2, Column3
FROM YourTable
WHERE TagDateTime IN ( SELECT MIN(TagDateTime)
                              FROM YourTable
                              WHERE TagDatetime between @D1 and @D2
                              GROUP BY CONVERT(VARCHAR(8), TagDateTime, 112), DATEPART(HOUR ,TagDateTime),(DATEPART(MINUTE ,TagDateTime)/15)
                      )  

และถ้าต้องการเรียกทุกชั่วโมง

SELECT TagDateTime, Column2, Column3
FROM YourTable
WHERE TagDateTime IN ( SELECT MIN(TagDateTime)
                              FROM YourTable
                              WHERE TagDatetime between @D1 and @D2
                              GROUP BY CONVERT(VARCHAR(8), TagDateTime, 112), DATEPART(HOUR ,TagDateTime)
                      )


2 comments: