Avatar billede food4u.dk Nybegynder
30. maj 2001 - 15:30 Der 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?

MVH
Christoffer
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 15:31 #1
PPS: Kan man skrive en komandoer i phpmyadmin, så man får dansk datoformat på sql serveren?
Avatar billede mike_dk_2001 Nybegynder
30. maj 2001 - 15:38 #2
Det eneste der virker optimalt er at du tager fuld kontrol over datoen, og derefter lægger den i DB som Varchar.



dim strDay,strMonth,strYear,strDate

strDay = day(date)
if strDay < 10 then strDay = \"0\" & day(date)
strMonth = month(date)
if strMonth < 10 then strMonth = \"0\" & month(date)
strYear = year(date)

strDate = strDay & \"-\" & strMonth & \"-\" & strYear
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 15:41 #3
men når den ligger som varchar, kan jeg ikke sammenligne den med date, f.eks:

if fradb(\"dato\") = date then

det er jo netop ikke en date mere, jeg kan heller ikke:

fradb(\"dato\") + 5, så får man 30-05-015
Avatar billede erikjacobsen Ekspert
30. maj 2001 - 15:54 #4
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....:)
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 15:55 #5
hmm, men hvordan gemmer jeg det så \"rigtigt\"?
Avatar billede erikjacobsen Ekspert
30. maj 2001 - 15:58 #6
update dintabel set dato=\'2001-05-30\' where name=\'food4u.dk\'

f.eks.  -  hvis det er det du mener?
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 15:59 #7
hmm, ikke helt

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å?
Avatar billede erikjacobsen Ekspert
30. maj 2001 - 16:07 #8
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\";
}


Avatar billede food4u.dk Nybegynder
30. maj 2001 - 16:17 #9
hmm, er det ikke noget PHP vi har gang i der?
Avatar billede erikjacobsen Ekspert
30. maj 2001 - 16:21 #10
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...
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 16:24 #11
hmm, men man kan ikke få mySQL til at fatte det danske format?
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 16:33 #12
hvorfor f.... kan asp ikke se at 30-05-2001 er ens, når den ene kommer fra date og en anden fra et varchar felt :O((((
Avatar billede erikjacobsen Ekspert
30. maj 2001 - 16:33 #13
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.
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 16:37 #14
hmm, så er jo godt nok på røven, jeg fatter ikke en bjælle af det her :o(
Avatar billede netsrac Praktikant
30. maj 2001 - 16:51 #15
Jeg bruger denne fætter når jeg skal ligge dags dato i mySQL:

dd = day(date())
mm = month(date())
yy = year(date())
today = yy & \"-\" & mm & \"-\" & dd

Den modsatte vej bliver
dato = rs(\"dato\")
dd = day(dato)
mm = month(dato)
yy = year(dato)
dato = dd & \"-\" & mm & \"-\" & yy
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 17:09 #16
Hmm, jeg kan stadig ikke sammenligne dem :o(
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 17:18 #17
netsrac

Hmm, hvad er der så galt her:
<!--#include virtual=\"dbadgang.asp\" -->
<%
dd = day(date())
mm = month(date())
yy = year(date())
today = yy & \"-\" & mm & \"-\" & dd
sql = \"update com_user set ban_dato = \"& today &\" where id = 5\"
conn.execute(sql)
response.write today
%>

den gemmer slet ikke noget
Avatar billede netsrac Praktikant
30. maj 2001 - 17:18 #18
Du har feltet som et dato felt i databasen ikke ? Så når du ligger datoen ind bruger du today og når du sammenligner gør du det i sql

select from tabel where datofelt = \'\" & today &\"\'\"
Avatar billede netsrac Praktikant
30. maj 2001 - 17:19 #19
Prøv lige med \' uden om datoen.
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 17:21 #20
he, manglede lige to \'\'
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 17:22 #21
netsrac, er 2001-5-30 og 2001-05-30 det samme?
Avatar billede netsrac Praktikant
30. maj 2001 - 17:23 #22
Ja det er det samme når mysql skal fortolke det, den indsætter det rigtigt.
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 17:24 #23
oki, skal lige lave scriptet og se om det virker

så får du point
Avatar billede food4u.dk Nybegynder
30. maj 2001 - 17:32 #24
jaaaaaaaaaaaaaaaaa, det virker, KANON!!!!!!!!!!! :o)

er det ok med jer begge at netsrac for 20, og erik 10?
Avatar billede netsrac Praktikant
30. maj 2001 - 17:37 #25
For mig er det ok :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester