Datum standardvärden - Vad varje programmerare bör veta
Filed under: Classic ASP , programmering 101 , SQL Server
För några år tillbaka när jag började programmera min första uppgift var att koden ett intranät kan spåra möten och vissa uppgifter anställda hade under dagen bygger på en kalender. Detta var innan jag visste vad makt SQL Server 2000 (och nu 2005/2008) hade och hur lätt det var som arbetar inom dessa system.
MS Access (som ändrats mycket sedan 1999) hade en svaghet. Det har alltid hållit datum format i mm / dd / åååå (Amerika är "världens" hahahahaha) så det här gjorde mitt jobb allt svårare att försöka hantera de datum en sydafrikansk baserad tid (dd / mm / åååå)
Jag kämpade hårt för att förstå den skamlösa gärning som MS Access slaktat min dag ingångar men jag kunde inte låta bli att tänka att detta kan inte hända alla programmerare!
Efter en mycket hjärta-värk och en hel del sömnlösa nätter jag äntligen hittat silverkula till varulv som MS Access (och andra servrar världen över körs på olika tidszon inställningar)
dd-mmm-åååå! Översatt till: 01-Jan-1999 till exempel, kan du infoga ett datum med 100% säkerhet att sömnen kommer garanterat. Denna universella datumformatet fungerar i alla (ja du läste det! NÅGRA) databas människan känner till och även om dina obearbetade uppgifter kan se ut 1999/9/2 i databasen, kommer det alltid in rätt datum i rätt format i databasen oavsett vad tidszon servern är inställd på!
Classic ASP exampes att läsa den dag ut är:
1
| date ( ) ) & amp ; "-" & amp ; Left ( MonthName ( Month ( Date ( ) ) ) , 3 ) & amp ; "-" & amp ; Year ( Date ( ) ) Day (datum ()) & amp; "-" & amp; Vänster (Redigerar (Månad (Datum ())), 3) & amp; "-" & amp; Year (Date ()) |
SQL Server exempel skulle använda DateName istället för Redigerar (som kan förkortas utan vänstern () funktion Jag var tvungen att använda i ASP) och naturligtvis, datum () = getDate () i SQL Server ![]()
Jag brukade alltid rekommendera att läsa den ur databasen (om möjligt) med lagrade procedurer i rätt format till att börja med. Men det är upp till dig att bestämma hur man använder denna pärla av kunskap jag bara kastat på dig. Och om du läser det här tänker "Men jag redan visste det här!" Och sedan tänka om. Tyvärr, i 2009, det finns fortfarande en hel del programmerare inte kan förstå enkla begrepp som tidszoner och datum hantering.
Kom ihåg barn. Att göra fel när du fortfarande ny i spelet är en sak. Svängde en CV (meritförteckning) på 3 år + erfarenhet och fortfarande göra dessa misstag är helt enkelt fel ... du väljer ett fält där du ska utvecklas och söker efter svar hela tiden, inte stagnera ... Jag ska hemsöka dina drömmar om du inte ![]()













































