{'Guid': 'VARCHAR(64) NOT NULL PRIMARY KEY', 'Location': 'VARCHAR(128)', 'Latitude': 'DECIMAL(12,8) DEFAULT 0', 'Longitude': 'DECIMAL(12,8) DEFAULT 0', 'Temperature': 'DECIMAL(6,2) DEFAULT 0', 'FeelsLike': 'DECIMAL(6,2) DEFAULT 0', 'TempMin': 'DECIMAL(6,2) DEFAULT 0', 'TempMax': 'DECIMAL(6,2) DEFAULT 0', 'Humidity': 'INT DEFAULT 0', 'Pressure': 'INT DEFAULT 0', 'WindSpeed': 'DECIMAL(6,2) DEFAULT 0', 'WindDeg': 'INT DEFAULT 0', 'WindGust': 'DECIMAL(6,2) DEFAULT 0', 'Clouds': 'INT DEFAULT 0', 'Visibility': 'INT DEFAULT 0', 'WeatherId': 'INT DEFAULT 0', 'WeatherMain': 'VARCHAR(32)', 'WeatherDesc': 'VARCHAR(128)', 'WeatherIcon': 'VARCHAR(16)', 'Sunrise': 'INT DEFAULT 0', 'Sunset': 'INT DEFAULT 0', 'Aqi': 'INT DEFAULT 0', 'Co': 'DECIMAL(10,2) DEFAULT 0', False: 'DECIMAL(10,2) DEFAULT 0', 'No2': 'DECIMAL(10,2) DEFAULT 0', 'O3': 'DECIMAL(10,2) DEFAULT 0', 'So2': 'DECIMAL(10,2) DEFAULT 0', 'Pm25': 'DECIMAL(10,2) DEFAULT 0', 'Pm10': 'DECIMAL(10,2) DEFAULT 0', 'Nh3': 'DECIMAL(10,2) DEFAULT 0', 'Package': 'VARCHAR(255)', 'Module': 'VARCHAR(255)', 'CreateTime': 'DATETIME DEFAULT CURRENT_TIMESTAMP'}
INSERT INTO data_weather
(Guid, Location, Latitude, Longitude,
Temperature, FeelsLike, TempMin, TempMax,
Humidity, Pressure,
WindSpeed, WindDeg, WindGust,
Clouds, Visibility,
WeatherId, WeatherMain, WeatherDesc, WeatherIcon,
Sunrise, Sunset,
Aqi, Co, No, No2, O3, So2, Pm25, Pm10, Nh3,
Package, Module)
VALUES
('{guid}', '{location}', {latitude}, {longitude},
{temperature}, {feels_like}, {temp_min}, {temp_max},
{humidity}, {pressure},
{wind_speed}, {wind_deg}, {wind_gust},
{clouds}, {visibility},
{weather_id}, '{weather_main}', '{weather_desc}',
'{weather_icon}',
{sunrise}, {sunset},
{aqi}, {co}, {no}, {no2}, {o3}, {so2},
{pm2_5}, {pm10}, {nh3},
'{package}', 'ObjServiceOpenWeather')
SELECT * FROM data_weather WHERE Package = '{package}' ORDER BY CreateTime DESC LIMIT 1
SELECT * FROM data_weather WHERE Package = '{package}'
AND CreateTime BETWEEN '{start_time}' AND '{end_time}'
ORDER BY CreateTime
SELECT
DATE(CreateTime) AS ReadingDate,
MIN(Temperature) AS MinTemp,
MAX(Temperature) AS MaxTemp,
AVG(Temperature) AS AvgTemp,
AVG(Humidity) AS AvgHumidity,
AVG(Clouds) AS AvgClouds,
MAX(Clouds) AS MaxClouds,
AVG(WindSpeed) AS AvgWindSpeed,
MAX(WindSpeed) AS MaxWindSpeed,
AVG(Aqi) AS AvgAqi,
AVG(Pm25) AS AvgPm25,
COUNT(*) AS ReadingCount
FROM data_weather WHERE Package = '{package}'
AND CreateTime BETWEEN '{start_time}' AND '{end_time}'
GROUP BY DATE(CreateTime) ORDER BY ReadingDate
SELECT
w.CreateTime,
w.Clouds,
w.Temperature,
w.WeatherDesc,
s.PvPowerTotal,
s.DailyGeneration,
s.ConsumptionPowerTotal
FROM data_weather w INNER JOIN data_solar s
ON DATE(w.CreateTime) = DATE(s.CreateTime)
AND HOUR(w.CreateTime) = HOUR(s.CreateTime)
AND s.Package = w.Package
WHERE w.Package = '{package}'
AND w.CreateTime BETWEEN '{start_time}' AND '{end_time}'
ORDER BY w.CreateTime