Guest, Sign inJoin
Laurinburg, North CarolinaLaurinburg, #1 on this list · Photo: Gerry Dincher from Hope Mills, NC · CC BY-SA 2.0
North Carolina rankings · Climate

Towns with the hottest summers in North Carolina

Laurinburg has the hottest summers of North Carolina’s 287 towns of 2,500+: July afternoons average a high of 91° (NOAA 1991–2020 normals). The typical town here averages 89°; 85 of the 287 average 90° or more.

The average July high. NOAA U.S. Climate Normals, 1991–2020, from NOAA’s 5 km grid at each town’s center; one town for each grid cell. A described list: no letters. How grades work

#1

Laurinburg

Scotland County · 14,582 people
91°

July high·January low 32°·69 days of 90°+ a year

#T2

Polkton

Anson County · 1,722 people
91°

July high·January low 32°·59 days of 90°+ a year

#T2

Rockingham

Richmond County · 8,815 people
91°

July high·January low 32°·70 days of 90°+ a year

All 287 towns

July high, highest first. Towns with the same figure share a rank (T = tied; 267 towns here).

287 towns ranked. Not here? See why a town may be missing.

#TownJuly highDays ≥90°January low
1LaurinburgScotland County · 14,582 people91°6932°average low
T2PolktonAnson County · 1,722 people91°5932°average low
T2RockinghamRichmond County · 8,815 people91°7032°average low
T4PembrokeRobeson County · 2,888 people91°5833°average low
T4Red SpringsRobeson County · 3,216 people91°6633°average low
T6East Rockinghamunincorporated, Richmond County · 2,779 people91°7032°average low
T6HamletRichmond County · 5,870 people91°7032°average low
T6Hope MillsCumberland County · 18,324 people91°7033°average low
T6WadesboroAnson County · 5,035 people91°5932°average low
T10LumbertonRobeson County · 18,955 people91°5834°average low
T10MarshvilleUnion County · 2,739 people91°5532°average low
T10St. PaulsRobeson County · 2,109 people91°5833°average low
T13EastoverCumberland County · 3,743 people91°5333°average low
T13ErwinHarnett County · 4,956 people91°4932°average low
T13FairviewUnion County · 3,805 people91°5531°average low
T13RaefordHoke County · 4,703 people91°5432°average low
T13Rockfishunincorporated, Hoke County · 3,574 people91°5432°average low
T18FayettevilleCumberland County · 209,120 people91°7032°average low
T18Spring LakeCumberland County · 11,252 people91°5332°average low
T20Buies Creek College campusunincorporated, Harnett County · 3,746 people91°4932°average low
T20ElizabethtownBladen County · 3,306 people91°5533°average low
T20MidlandCabarrus County · 5,151 people91°6131°average low
T20MonroeUnion County · 42,644 people91°5531°average low
T20OakboroStanly County · 2,316 people91°3931°average low
T20WhitevilleColumbus County · 4,765 people91°6234°average low
T26LillingtonHarnett County · 5,040 people91°5432°average low
T26Mineral SpringsUnion County · 3,514 people91°5131°average low
T26SmithfieldJohnston County · 13,114 people91°5332°average low
T26UnionvilleUnion County · 7,322 people91°5531°average low
T26WingateUnion County · 4,628 people91°5532°average low
T31Anderson Creekunincorporated, Harnett County · 13,927 people90°5432°average low
T31DunnHarnett County · 8,814 people90°4932°average low
T31MarvinUnion County · 7,040 people90°5631°average low
T31Tabor CityColumbus County · 3,886 people90°5134°average low
T35AberdeenMoore County · 10,066 people90°4432°average low
T35BensonJohnston County · 4,660 people90°4932°average low
T35HarrisburgCabarrus County · 20,742 people90°6131°average low
T35LocustStanly County · 6,120 people90°6131°average low
T35PinevilleMecklenburg County · 11,851 people90°4931°average low
T35SelmaJohnston County · 7,406 people90°5331°average low
T35StallingsUnion County · 17,760 people90°5131°average low
T35WaxhawUnion County · 23,140 people90°5131°average low
T35Whispering PinesMoore County · 5,505 people90°5532°average low
T44AlbemarleStanly County · 17,769 people90°3931°average low
T44AngierHarnett County · 9,410 people90°5431°average low
T44ClaytonJohnston County · 32,633 people90°4131°average low
T44Indian TrailUnion County · 44,303 people90°5131°average low
T44Spout Springsunincorporated, Harnett County · 11,242 people90°5432°average low
T44WeddingtonUnion County · 14,517 people90°5131°average low
T44Wesley ChapelUnion County · 9,566 people90°5131°average low
T51ApexWake County · 80,419 people90°4130°average low
T51Barbecue5,910 people90°5432°average low
T51Chapel HillOrange County · 63,565 people90°4429°average low
T51Lake Royaleunincorporated, Franklin County · 3,168 people90°5130°average low
T51LouisburgFranklin County · 3,480 people90°5129°average low
T51MatthewsMecklenburg County · 32,769 people90°5131°average low
T51Mint HillMecklenburg County · 29,476 people90°5131°average low
T51RaleighWake County · 506,306 people90°5231°average low
T51Southern PinesMoore County · 17,357 people90°5532°average low
T51Wilson's MillsJohnston County · 2,987 people90°5331°average low
T61BelmontGaston County · 16,415 people90°4931°average low
T61CharlotteMecklenburg County · 964,784 people90°4931°average low
T61CramertonGaston County · 5,713 people90°4931°average low
T61CreedmoorGranville County · 5,046 people90°3628°average low
T61Elroyunincorporated, Wayne County · 3,251 people90°6132°average low
T61FarmvillePitt County · 4,577 people90°5332°average low
T61GarnerWake County · 41,562 people90°3331°average low
T61KnightdaleWake County · 23,144 people90°4131°average low
T61MorrisvilleWake County · 32,466 people90°5230°average low
T61PinehurstMoore County · 18,670 people90°4432°average low
T61RolesvilleWake County · 12,839 people90°3630°average low
T61SanfordLee County · 34,138 people90°5431°average low
T61Wake ForestWake County · 58,147 people90°3630°average low
T61WilsonWilson County · 49,572 people90°5131°average low
T75Archer LodgeJohnston County · 5,649 people90°4131°average low
T75ClintonSampson County · 8,466 people90°4932°average low
T75DurhamDurham County · 305,561 people90°5229°average low
T75GoldsboroWayne County · 35,012 people90°6132°average low
T75GriftonPitt County · 2,539 people90°6233°average low
T75KinstonLenoir County · 19,705 people90°6233°average low
T75La GrangeLenoir County · 2,947 people90°6233°average low
T75Mount HollyGaston County · 19,033 people90°4930°average low
T75Seven Lakesunincorporated, Moore County · 4,535 people90°4431°average low
T75WendellWake County · 19,687 people90°4130°average low
T75ZebulonWake County · 11,933 people90°4830°average low
T86AydenPitt County · 5,263 people90°5333°average low
T86BelvilleBrunswick County · 3,199 people90°4534°average low
T86Brogdenunincorporated, Wayne County · 2,733 people90°6132°average low
T86ButnerGranville County · 8,112 people90°3628°average low
T86CarthageMoore County · 3,070 people90°5532°average low
T86CaryWake County · 183,582 people90°4131°average low
T86ConcordCabarrus County · 114,598 people90°6130°average low
T86GreenvillePitt County · 96,443 people90°5332°average low
T86Holly SpringsWake County · 50,288 people90°4331°average low
T86LelandBrunswick County · 35,731 people90°4534°average low
T86Mar-Macunincorporated, Wayne County · 2,877 people90°6132°average low
T86Mount OliveWayne County · 4,521 people90°4432°average low
T86TroyMontgomery County · 3,020 people90°4431°average low
T86WintervillePitt County · 10,973 people90°5332°average low
T86Wrightsborounincorporated, New Hanover County · 6,287 people90°5834°average low
T101BurgawPender County · 3,903 people90°6033°average low
T101Forest CityRutherford County · 7,410 people90°4529°average low
T101LowellGaston County · 3,939 people90°4931°average low
T101Northchaseunincorporated, New Hanover County · 5,896 people90°5834°average low
T101PittsboroChatham County · 5,054 people90°5430°average low
T101RutherfordtonRutherford County · 3,723 people90°4530°average low
T101WallaceDuplin County · 3,570 people90°6233°average low
T101WarsawDuplin County · 2,853 people90°5132°average low
T109Boiling SpringsCleveland County · 4,799 people90°4229°average low
T109FranklintonFranklin County · 2,890 people90°5129°average low
T109Fuquay-VarinaWake County · 48,536 people90°3331°average low
T109Murraysvilleunincorporated, New Hanover County · 16,339 people90°4534°average low
T109NashvilleNash County · 5,911 people90°5430°average low
T109Roanoke RapidsHalifax County · 14,386 people90°4630°average low
T109Rocky MountNash County · 55,120 people90°3730°average low
T109TarboroEdgecombe County · 10,979 people90°4331°average low
T109WilmingtonNew Hanover County · 126,809 people90°4534°average low
T118Briar Chapelunincorporated, Chatham County · 6,049 people90°4430°average low
T118KannapolisCabarrus County · 61,708 people90°6130°average low
T118Red OakNash County · 3,523 people90°5430°average low
T118ShelbyCleveland County · 23,309 people90°4229°average low
T118YoungsvilleFranklin County · 2,461 people90°5130°average low
T123Boiling Spring LakesBrunswick County · 6,875 people90°4635°average low
T123DallasGaston County · 6,392 people90°4930°average low
T123Hampsteadunincorporated, Pender County · 9,292 people90°5835°average low
T123Lowesvilleunincorporated, Lincoln County · 3,874 people90°4930°average low
T123RanloGaston County · 4,848 people90°4931°average low
T128CarrboroOrange County · 20,962 people89°4430°average low
T128HuntersvilleMecklenburg County · 68,535 people89°4930°average low
T128New BernCraven County · 34,724 people89°4835°average low
T128River BendCraven County · 2,890 people89°4833°average low
T128Trent WoodsCraven County · 4,070 people89°4834°average low
T133Bessemer CityGaston County · 5,834 people89°4930°average low
T133DavidsonMecklenburg County · 16,662 people89°6130°average low
T133GastoniaGaston County · 87,067 people89°4930°average low
T133Half Moonunincorporated, Onslow County · 7,378 people89°5633°average low
T133River Roadunincorporated, Beaufort County · 3,366 people89°3935°average low
T133SpindaleRutherford County · 4,180 people89°4530°average low
T133WashingtonBeaufort County · 9,910 people89°3935°average low
T133WilliamstonMartin County · 5,086 people89°3832°average low
T141Brices Creekunincorporated, Craven County · 3,415 people89°4834°average low
T141CorneliusMecklenburg County · 35,094 people89°6130°average low
T141James Cityunincorporated, Craven County · 4,789 people89°4835°average low
T141Myrtle Groveunincorporated, New Hanover County · 12,637 people89°5236°average low
T141Ogdenunincorporated, New Hanover County · 8,249 people89°4536°average low
T141RockwellRowan County · 2,417 people89°3730°average low
T141ShallotteBrunswick County · 5,335 people89°2436°average low
T141Siler CityChatham County · 8,155 people89°3530°average low
T141StanleyGaston County · 4,237 people89°4930°average low
T141SwepsonvilleAlamance County · 2,632 people89°5430°average low
T151AhoskieHertford County · 4,608 people89°5330°average low
T151Green LevelAlamance County · 3,409 people89°5429°average low
T151HendersonVance County · 15,013 people89°4328°average low
T151Holly RidgeOnslow County · 5,908 people89°2334°average low
T151JacksonvilleOnslow County · 72,732 people89°4434°average low
T151MurfreesboroHertford County · 2,242 people89°2930°average low
T151Porters Neckunincorporated, New Hanover County · 7,654 people89°4536°average low
T151WindsorBertie County · 3,469 people89°3832°average low
T159BurlingtonAlamance County · 61,496 people89°5030°average low
T159Enochvilleunincorporated, Rowan County · 3,321 people89°6130°average low
T159GrahamAlamance County · 20,131 people89°5430°average low
T159Kings MountainCleveland County · 12,117 people89°4230°average low
T159Piney Greenunincorporated, Onslow County · 14,078 people89°4434°average low
T159RandlemanRandolph County · 4,767 people89°3630°average low
T159Wrightsville BeachNew Hanover County · 2,397 people89°4536°average low
T166Carolina BeachNew Hanover County · 6,870 people89°4636°average low
T166Forest Oaksunincorporated, Guilford County · 4,293 people89°4230°average low
T166LibertyRandolph County · 2,739 people89°3530°average low
T166Neuse Forestunincorporated, Craven County · 2,671 people89°3835°average low
T166PlymouthWashington County · 3,170 people89°4432°average low
T166SpencerRowan County · 3,450 people89°3729°average low
T166Surf CityPender County · 5,142 people89°2335°average low
T166Westportunincorporated, Lincoln County · 5,915 people89°4330°average low
T174CherryvilleGaston County · 6,523 people89°3529°average low
T174China GroveRowan County · 4,650 people89°3630°average low
T174EdenRockingham County · 15,500 people89°3828°average low
T174ElonAlamance County · 11,366 people89°4830°average low
T174Glen Ravenunincorporated, Alamance County · 3,506 people89°5030°average low
T174Granite QuarryRowan County · 3,129 people89°3730°average low
T174HavelockCraven County · 17,430 people89°3835°average low
T174Lake Norman of Iredellunincorporated, Iredell County · 12,494 people89°4329°average low
T174LandisRowan County · 3,885 people89°6130°average low
T174MebaneAlamance County · 21,952 people89°5429°average low
T174OxfordGranville County · 8,985 people89°3828°average low
T174SalisburyRowan County · 36,879 people89°3729°average low
T174SouthportBrunswick County · 4,434 people89°4637°average low
T187AsheboroRandolph County · 27,990 people89°3231°average low
T187GamewellCaldwell County · 3,713 people89°3628°average low
T187Sneads Ferryunincorporated, Onslow County · 2,728 people89°4435°average low
T187WentworthRockingham County · 2,774 people89°3229°average low
T191GibsonvilleGuilford County · 9,876 people89°4830°average low
T191HillsboroughOrange County · 9,778 people89°3429°average low
T191Lake Norman of Catawbaunincorporated, Catawba County · 9,906 people89°4329°average low
T191LexingtonDavidson County · 20,238 people89°3929°average low
T191Oak IslandBrunswick County · 9,337 people89°4637°average low
T191Pleasant GardenGuilford County · 5,165 people89°4530°average low
T191SwansboroOnslow County · 4,174 people89°4435°average low
T198ArchdaleRandolph County · 12,254 people88°4530°average low
T198GreensboroGuilford County · 308,667 people88°4229°average low
T198JamestownGuilford County · 3,803 people88°4530°average low
T198LincolntonLincoln County · 12,465 people88°3530°average low
T198MaidenCatawba County · 3,922 people88°4329°average low
T198MorgantonBurke County · 17,849 people88°3528°average low
T198SummerfieldGuilford County · 11,327 people88°3329°average low
T198ValdeseBurke County · 4,712 people88°3528°average low
T206Carolina ShoresBrunswick County · 5,540 people88°3237°average low
T206EdentonChowan County · 4,546 people88°3733°average low
T206High PointGuilford County · 120,571 people88°4530°average low
T206MocksvilleDavie County · 6,282 people88°4128°average low
T206MooresvilleIredell County · 55,842 people88°3629°average low
T206Mountain Viewunincorporated, Catawba County · 3,982 people88°3229°average low
T206NewportCarteret County · 4,500 people88°1835°average low
T206NewtonCatawba County · 13,822 people88°4329°average low
T206ReidsvilleRockingham County · 14,692 people88°3229°average low
T206Sunset BeachBrunswick County · 4,642 people88°3237°average low
T216Bermuda RunDavie County · 3,323 people88°2628°average low
T216Emerald IsleCarteret County · 3,970 people88°1836°average low
T216MarionMcDowell County · 7,440 people88°3228°average low
T216MidwayDavidson County · 5,104 people88°3929°average low
T216Oak RidgeGuilford County · 7,896 people88°3329°average low
T216StatesvilleIredell County · 32,181 people88°3328°average low
T216Tyrounincorporated, Davidson County · 3,833 people88°3929°average low
T216Welcomeunincorporated, Davidson County · 3,521 people88°3929°average low
T224Granite FallsCaldwell County · 4,964 people88°3229°average low
T224Moyockunincorporated, Currituck County · 5,684 people88°4032°average low
T224ThomasvilleDavidson County · 27,733 people88°4529°average low
T224TrinityRandolph County · 7,274 people88°4530°average low
T224WallburgDavidson County · 3,255 people88°4529°average low
T229BeaufortCarteret County · 4,912 people88°736°average low
T229Bethlehemunincorporated, Alexander County · 4,101 people88°3229°average low
T229ClemmonsForsyth County · 22,808 people88°2628°average low
T229ConoverCatawba County · 8,938 people88°3229°average low
T229LewisvilleForsyth County · 14,421 people88°2628°average low
T229SawmillsCaldwell County · 5,105 people88°3229°average low
T229StokesdaleGuilford County · 6,133 people88°3329°average low
T229TroutmanIredell County · 4,336 people88°3329°average low
T237KernersvilleForsyth County · 29,128 people88°3329°average low
T237Long ViewCatawba County · 5,387 people88°3229°average low
T239Elizabeth CityPasquotank County · 19,622 people88°4033°average low
T239HickoryCatawba County · 45,975 people88°3229°average low
T239Morehead CityCarteret County · 10,434 people88°1136°average low
T239RoxboroPerson County · 8,380 people88°3428°average low
T239St. Stephensunincorporated, Catawba County · 9,457 people88°3229°average low
T239WalkertownForsyth County · 6,120 people88°3329°average low
T245Cajah's MountainCaldwell County · 2,702 people88°3628°average low
T245HudsonCaldwell County · 3,786 people88°3629°average low
T245LenoirCaldwell County · 18,372 people88°3628°average low
T245North WilkesboroWilkes County · 4,369 people88°3228°average low
T245WilkesboroWilkes County · 3,618 people88°3228°average low
T245Winston-SalemForsyth County · 257,271 people88°3329°average low
251YadkinvilleYadkin County · 3,055 people88°2628°average low
T252JonesvilleYadkin County · 2,356 people88°3227°average low
T252Rural HallForsyth County · 3,607 people88°2428°average low
T252TobaccovilleForsyth County · 2,770 people88°2428°average low
255ElkinSurry County · 4,130 people87°3227°average low
256Mount AirySurry County · 10,682 people87°2427°average low
257KingStokes County · 7,977 people87°2428°average low
258Southern ShoresDare County · 3,110 people86°2135°average low
T259Kill Devil HillsDare County · 7,731 people86°2135°average low
T259Kitty HawkDare County · 3,670 people86°2135°average low
T259Nags HeadDare County · 3,117 people86°2135°average low
262FranklinMacon County · 4,403 people86°626°average low
T263Cullowhee College campusunincorporated, Jackson County · 7,973 people85°1326°average low
T263WoodfinBuncombe County · 8,229 people85°1627°average low
T265AshevilleBuncombe County · 93,523 people85°1627°average low
T265Emmaunincorporated, Buncombe County · 2,657 people85°1627°average low
T265Mars HillMadison County · 2,280 people85°1326°average low
T265WeavervilleBuncombe County · 4,790 people85°1627°average low
269Avery Creekunincorporated, Buncombe County · 2,887 people84°1227°average low
270FletcherHenderson County · 8,373 people84°927°average low
T271Royal Pinesunincorporated, Buncombe County · 4,325 people84°927°average low
T271SylvaJackson County · 2,691 people84°1326°average low
T273HendersonvilleHenderson County · 15,867 people84°1029°average low
T273Mills RiverHenderson County · 7,504 people84°1227°average low
275Etowahunincorporated, Henderson County · 7,968 people84°1027°average low
T276Danaunincorporated, Henderson County · 4,147 people83°1029°average low
T276Mountain Homeunincorporated, Henderson County · 3,437 people83°1028°average low
278BrevardTransylvania County · 8,098 people83°427°average low
279Valley Hillunincorporated, Henderson County · 2,675 people83°1028°average low
280Swannanoaunincorporated, Buncombe County · 6,901 people83°626°average low
281East Flat Rockunincorporated, Henderson County · 6,323 people83°1029°average low
282Lake Junaluskaunincorporated, Haywood County · 3,175 people83°325°average low
283CantonHaywood County · 4,418 people82°425°average low
284WaynesvilleHaywood County · 11,006 people82°324°average low
285Black MountainBuncombe County · 8,491 people82°627°average low
286Edneyvilleunincorporated, Henderson County · 2,716 people82°1028°average low
287Boone College campusWatauga County · 19,929 people79°024°average low
Quick answers

Questions people ask

Which North Carolina town has the hottest summers?

Laurinburg (Scotland County): July afternoons average a high of 91°. Polkton (91°) and Rockingham (91°) follow.

How are these towns ranked?

By the average July high (the warmest month’s afternoons), highest first, on NOAA’s 1991–2020 normals, read from its 5 km grid at each town’s center. Towns with the same figure share a rank (T); the figure and the state rank are the ones on each town’s Climate page. How grades work.

Why isn’t my town on this list?

The list covers towns of 2,500+ residents, one for each of NOAA’s 5 km grid cells (287 in North Carolina): where towns share a cell, one of them stands for it, since the grid gives them the same figures. Every town’s own figures are on its Climate page. Every town is on the North Carolina page.

Go deeper

More North Carolina lists

Every list ranks the same 2,500+ towns, so a town’s rank means the same thing on each.

All North Carolina rankings →
Other states

Hottest summers in other states