gcogco10 Ответов: 2

Создать датой и временем в Azure SQL-запрос для датчиков в центр IoT


Привет Команда

Я пытаюсь найти способ выяснить, как создать дату, хотя ее нет на входе датчиков для моего центра интернета вещей. Но я хочу обслуживать это поле как поле для моих датчиков, таких как влажность и температура. Что каждый датчик должен иметь дату для каждого набора данных для моего рабочего стола power bi.

Что я уже пробовал:

WITH iot_hub_last_3_mins AS (
    SELECT 
        System.TimeStamp() AS windowTime,
        deviceId,
        max(value) as maxTemp
    FROM
        PowerBIVisualizationOutput TIMESTAMP BY pwb1
    WHERE 
        sensorName = 'IOT Hub' 
    GROUP BY 
        deviceId, 
        SlidingWindow(minute, 3) 
)

SELECT 
    pwb1.t AS eventEnqueuedUctTime,
    pwb1.temperature, 
    pwb1.value AS temp,
	pwb1.maxtTemp AS maxTemp
    
INTO PowerBITable

FROM PowerBIVisualizationInput pwb1 TIMESTAMP BY PowerBIVisualizationOutput
JOIN iot_hub_last_3_mins PowerBIVisualizationOutput
    ON pwb1.temperature = PowerBIVisualizationOutput.deviceId 
    AND pwb1.t = PowerBIVisualizationOutput.windowTime
    AND DATEDIFF(minute,pwb1,PowerBIVisualizationOutput) between 0 and 10
    
WHERE
    pwb1.sensorName = 'temp'
    AND pwb1.value <= 40
    AND PowerBIVisualizationOutput.maxTemp > 10
SELECT 
    pwb1.t AS eventEnqueuedUctTime,
    pwb1.illuminance, 
    pwb1.value AS illum,
	pwb1.maxPower AS maxTemp
    
INTO PowerBITable

FROM PowerBIVisualizationInput pwb1 TIMESTAMP BY PowerBIVisualizationOutput
JOIN iot_hub_last_3_mins PowerBIVisualizationOutput
    ON pwb1.deviceId = PowerBIVisualizationOutput.deviceId 
    AND pwb1.t = PowerBIVisualizationOutput.windowTime
    AND DATEDIFF(minute,t1,t2) between 0 and 3
    
WHERE
    pwb1.sensorName = 'illum'
    AND pwb1.value <= 40
    AND PowerBIVisualizationOutput.maxTemp > 10

2 Ответов

Рейтинг:
2

OriginalGriff

Один из способов сделать это - добавить Значения по умолчанию для столбцов[^] который может включать дату/время вставки строки. Сделайте это со значением UTC по умолчанию, и больше никакой работы не потребуется.


Рейтинг:
0

gcogco10

Привет Команда

Мне удалось обойти это, но я не получаю данные из поля даты. Мой код выглядит следующим образом; есть ли способ получить последнюю дату и метку времени? Пожалуйста, помогите мне, я почти там с этим, спасибо?

SELECT  
    illuminance as illuminance,
    temperature as temperature,
    MAX(CAST([timeStamp] AS datetime)) AS Date
INTO 
   [PowerBIVisualizationOutput] 
FROM 
   [PowerBIVisualizationInput]
   
GROUP BY 
illuminance,
temperature,
TumblingWindow(minute,5)