Madison, WI Climate in January

Temperature for January

In Madison, WI during January the average high temperature is 28.2°F. The hottest day on record was January 25, 1981 when the temperature recorded was 55.0°F.

Madison, WI daily average and extreme temperature range for January

Low Temperature

Overnight in January the average temperature drops below freezing at 9.8°F, with the lowest temperature of -36.0°F being recorded on January 30, 1951. On average there are 19 days in January when the temperature stays below freezing all day. In the worst January there were 31 days when the temperature did not make it above freezing. Overnight temperatures drop below freezing between 27 and 31 times in January.

Precipitation for January

In January the average monthly rainfall in Madison, WI is 1.33 inches with rain usually falling on between 4 and 5 days. 1948 was the driest January with only 0.00 inches of rain falling, and 1973 was the wettest January with 7.44 inches of rain. The wettest single day in January was 27 January 1973 when 1.65 inches of rain fell.

In January it usually snows on between 15 and 16 days. In January there have been some years when thunderstorms have occurred, although there are other years when there hasn't been a thunderstorm in January.

  BENCHMARKS  
Loading Time: Base Classes  0.0153
Controller Execution Time ( Climate / Summary )  0.1553
Total Execution Time  0.1707
  GET DATA  
No GET data exists
  MEMORY USAGE  
2,293,088 bytes
  POST DATA  
No POST data exists
  URI STRING  
climate/summary/united-states/wisconsin/dane-co-rgnl-truax-fld/january
  CLASS/METHOD  
climate/summary
  DATABASE:  xrssweather0-climatespy   QUERIES: 11  (Hide)
0.0006   SELECT `locationId`, `cityName`, `urlName`, `urlState`, `stateName`, `stateCode`, `StationName`, `countryName`, `urlCountry`, `dd1`.`year` as earliestYear, `dd1`.`monthNo` as earliestMonth, `dd1`.`dayNo` as earliestDay, `dd2`.`year` as latestYear, `dd2`.`monthNo` as latestMonth, `dd2`.`dayNo` as latestDay
FROM 
(`dimLocation`)
JOIN `dimDatedd1 ON `dimLocation`.`beginDateId` = `dd1`.`dateId`
JOIN `dimDatedd2 ON `dimLocation`.`endDateId` = `dd2`.`dateId`
WHERE `urlState` =  'wisconsin'
AND `urlName` =  'dane-co-rgnl-truax-fld'
LIMIT 1 
0.0018   SELECT `monthNo`, AVG(`meanMinTemp`) AS meanMinTempAVG(`meanMaxTemp`) AS meanMaxTemp
FROM 
(`aggMonthly`)
WHERE `monthNo` =  1
AND `locationId` =  '4176'
GROUP BY `monthNo
0.0036   SELECT `monthNo`, AVG(`meanMinTemp`) AS meanMinTempAVG(`meanMaxTemp`) AS meanMaxTemp
FROM 
(`aggMonthly`)
WHERE `monthNo` =  1
AND `locationId` =  '4176'
GROUP BY `monthNo
0.0047   SELECT `maxTemp`, `monthName`, `dayNo`, `dimDate`.`year`, `dimLocation`.`locationId`, `dimLocation`.`countryName`, `dimLocation`.`stateName`, `dimLocation`.`presentationName`, `dimLocation`.`urlCountry`, `dimLocation`.`urlState`, `dimLocation`.`urlName`
FROM (`aggMonthly`)
JOIN `dimLocationON `dimLocation`.`locationId` = `aggMonthly`.`locationId`
JOIN `dimDateON `dimDate`.`dateId` = `aggMonthly`.`maxTempDate`
WHERE `aggMonthly`.`locationId` =  '4176'
AND `dimDate`.`monthNo` =  1
ORDER BY 
`maxTempdesc
LIMIT 1 
0.0018   SELECT `minTemp`, `monthName`, `dayNo`, `dimDate`.`year`, `dimLocation`.`locationId`, `dimLocation`.`countryName`, `dimLocation`.`stateName`, `dimLocation`.`presentationName`, `dimLocation`.`urlCountry`, `dimLocation`.`urlState`, `dimLocation`.`urlName`
FROM (`aggMonthly`)
JOIN `dimLocationON `dimLocation`.`locationId` = `aggMonthly`.`locationId`
JOIN `dimDateON `dimDate`.`dateId` = `aggMonthly`.`minTempDate`
WHERE `aggMonthly`.`locationId` =  '4176'
AND `dimDate`.`monthNo` =  1
ORDER BY 
`minTempasc
LIMIT 1 
0.0557   select min(count_days) as min_daysavg(count_days) as average_daysmax(count_days) as max_days  from (select yearcount(*) as count_days from factDaily fd  join dimDate dd on (dd.dateId fd.DateId) where fd.locationId 4176 and minTemp <= 32  and dd.monthNo 1 group by year) as count_freezing 
0.0268   select min(count_days) as min_daysavg(count_days) as average_daysmax(count_days) as max_days  from (select yearcount(*) as count_days from factDaily fd  join dimDate dd on (dd.dateId fd.DateId) where fd.locationId 4176 and maxTemp <= 32  and dd.monthNo 1 group by year) as count_freezing 
0.0007   SELECT AVG(`sumRainfall`) AS sumRainfallAVG(`daysRainfall`) AS daysRainfallAVG(`daysSnow`) AS daysSnowAVG(`daysTornado`) AS daysTornadoAVG(`daysThunder`) AS daysThunder, `monthNo`
FROM (`aggMonthly`)
WHERE `monthNo` =  1
AND `locationId` =  '4176'
GROUP BY `monthNo
0.0007   SELECT `sumRainfall`, `daysRainfall`, `year`
FROM (`aggMonthly`)
WHERE `monthNo` =  1
AND `locationId` =  '4176'
ORDER BY `sumRainfallasc
LIMIT 1 
0.0007   SELECT `sumRainfall`, `daysRainfall`, `year`
FROM (`aggMonthly`)
WHERE `monthNo` =  1
AND `locationId` =  '4176'
ORDER BY `sumRainfalldesc
LIMIT 1 
0.0024   SELECT `maxRainfall`, `monthName`, `dayNo`, `dimDate`.`year`, `dimLocation`.`locationId`, `dimLocation`.`countryName`, `dimLocation`.`stateName`, `dimLocation`.`presentationName`, `dimLocation`.`urlCountry`, `dimLocation`.`urlState`, `dimLocation`.`urlName`
FROM (`aggMonthly`)
JOIN `dimLocationON `dimLocation`.`locationId` = `aggMonthly`.`locationId`
JOIN `dimDateON `dimDate`.`dateId` = `aggMonthly`.`maxRainfallDate`
WHERE `aggMonthly`.`locationId` =  '4176'
AND `dimDate`.`monthNo` =  1
ORDER BY 
`maxRainfalldesc
LIMIT 1 
  HTTP HEADERS  (Show)
  CONFIG VARIABLES  (Show)