30. maj 2001 - 15:30Der er
23 kommentarer og 2 løsninger
Dato format forskelligt fra ASPserver og mySQLserver, hvadså?
Hejsa
Jeg har et problem, tror jeg. Jeg har en side hos a0.dk, min ASP server bruger fint det danske datoformat, men jeg tvivler på at min mySQL server går det, hvorfor? Fordi:
Når jeg laver et DATE felt, og gemmer DATE til det, så bliver det underligt. Hvis jeg skriver <% = date %>, så får jeg: 30-05-2001
Når det så bliver gemt i min DB, så bliver det til: 20-05-2030 Så har jeg prøvet at skrive \"date(dmy)\", men det hjalp heller ikke, hvad kan jeg gøre?
PS: Når jeg har en date liggende i varchar(20) format, hvordan kan jeg så lave den til DATE format?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Formatet du bør bruge er f.eks. \'2001-05-30\' - der er ikke noget der hedder \"dansk\" format i MySql. Med date()-funktionen kan du så vise det for brugeren som du gerne vil have det. Ja, det var jo lige én forskel mere....:)
når jeg skal gemme noget, via en form, så den eneste måde det kan ske automatisk, er ved at bruge date eller now, men det skal jo så laves om. Først når det skal gemmes, og så når det skal vises, det er det jeg ikke kan forstå?
Ok, folk taster ind: \"31-5-2001\". Det får du fingre i med variablen $dato. Så tager du et regulært udtryk op af lommen:
if (ereg(\'^([0-9]{1,2})-([0-9]{1-2})-([1-2][0-9]{3})$\',$dato,$r)) { $nytformat=\"$r[3]-$r[2]-$r[1]\"; $sql=\"update dintabel set dato=\'$nytformat\' where navn=\'food4u.dk\'\"; mysql_query($sql); } else { print \"SKriv det nu korrekt, tumpe\"; }
Når du tager det ud gør du det modsat (antag den står i $row[dato]):
if (ereg(\'^([1-2][0-9]{3})-([0-9]{1,2})-([0-9]{1-2})$\',$row[dato},$r)) { $danskformat=\"$r[3]-$r[2]-$r[1]\"; print \"Du får lønforhøjelse den $danskformat\"; } else { print \"fejl i databasen\"; }
Jow - det er det da. Og jeg kan godt se nu, at det måske er en anelse malplaceret (og med en enkelt trykfejl). Man kan sikkert gøre det samme i ASP - altså trække dag, måned, og år ud af en streng. Hvis ellers man gad...
Som tidligere nævnt kan du proppe det ned i et char(xxx)-felt, men så mister du muligheden for at kunne spørge på det i en SQL-sætning, f.eks.: select ... where dato<\'30-5-2001\' da det ikke giver mening. Og ellers nej, der findes det af mig omtalte ganske fortrinlige standardiserede datoformat.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.