Avatar billede weeelo Nybegynder
09. maj 2005 - 16:23 Der er 13 kommentarer og
2 løsninger

Dato ændring inden INSERT

Hejsa..

Jeg har nu siddet og brugt nærmest oceaner af tid på at ændre og opbygge en kæmpe liste af strenge til en db, hvorefter jeg så først til sidst finder ud af, at dato-feltet er skrevet som dd.mm.åååå - og for at kunne smide det ind i min db skal jeg bruge ååå-mm-dd..

Findes der en nem og simpel måde hvorpå jeg kan ændre dette, i en masse strenge på samme tid..?
Avatar billede erikjacobsen Ekspert
09. maj 2005 - 16:26 #1
Måske nemmest i MySql. 

1) Sæt datoerne ind i et CHAR(10) felt og lad dit datofelt være tomt
2) Kør en SQL-sætning, som jeg kan lave senere, der omdanner dit format til det rigtig og sætter i dato-feltet
3) Fjern dit CHAR(10) felt.

Lyder det godt nok?
Avatar billede arne_v Ekspert
09. maj 2005 - 16:31 #2
Det må være en ret elementær operation i de fleste programmerings sprog - hvilket
sprog bruger du ?
Avatar billede weeelo Nybegynder
09. maj 2005 - 16:44 #3
Jeg arbejder i php..

Jeg har lavet mit udtræk, men hvordan vil du lave datoen om i udtrækket?
Avatar billede fsconsult.dk Nybegynder
09. maj 2005 - 16:57 #4
Det letteste er nok at bruge substr funtionen til at hente dd, mm og åå ud fra dit input og sætte det korrekte sammen til mysql-formattet.

http://dk.php.net/manual/en/function.substr.php
Avatar billede weeelo Nybegynder
09. maj 2005 - 17:05 #5
<?php
$sql="SELECT * FROM tabel ORDER BY date ASC";

$result  =  mysql_query("$sql")or die(mysql_error());
for ($i=1; $row  =  mysql_fetch_object($result); $i++){

echo"
<table>
<tr>
<td align=left width=100%>INSERT INTO `tabel` VALUES (NULL, '$row->date', '$row->id1, '$row->id2', $row->home, $row->away, '$row->l', '$row->s', $row->g);</td>
    </tr>
</table>
";
}
?>

Hvordan skal jeg ændre udtrækket..?
Avatar billede weeelo Nybegynder
09. maj 2005 - 17:07 #6
>> fsconsult.dk

Jeg forstår ikke helt det dér, så holder mig bare til den anden metode..
Avatar billede erikjacobsen Ekspert
09. maj 2005 - 23:02 #7
Hvilken metode er du i gang med? Og hvad er det helt præcist du har?
Avatar billede fsconsult.dk Nybegynder
09. maj 2005 - 23:10 #8
<?php
$sql="SELECT * FROM tabel ORDER BY date ASC";

$result  =  mysql_query("$sql")or die(mysql_error());
for ($i=1; $row  =  mysql_fetch_object($result); $i++){
    $dd=substr($row->date, 0, 2);
    $mm=substr($row->date, 3, 2);
    $yy=substr($row->date, 6, 4);
    $sDate=yy . "-" . mm . "-" . dd;

echo"
<table>
<tr>
<td align=left width=100%>INSERT INTO `tabel` VALUES (NULL, '$sDate', '$row->id1, '$row->id2', $row->home, $row->away, '$row->l', '$row->s', $row->g);</td>
    </tr>
</table>
";
}
?>
Avatar billede fsconsult.dk Nybegynder
09. maj 2005 - 23:11 #9
iøvrigt kan det ikke anbefales at kalde et dato felt for "date", da det er et reserveret ord i langt de fleste databaser, og kun kan give anledning til problemer ;-)
Avatar billede weeelo Nybegynder
09. maj 2005 - 23:16 #10
Hmmm.. Den viser det bare som yyyy-mm-dd -

    $dd=substr($row->date, 0, 2);
    $mm=substr($row->date, 3, 2);
    $yyyy=substr($row->date, 6, 4);
    $sDate=yyyy . "-" . mm . "-" . dd;
Avatar billede weeelo Nybegynder
09. maj 2005 - 23:17 #11
Der manglede lige nogle $'er... Det ser ud til at virke nu..
Avatar billede fsconsult.dk Nybegynder
09. maj 2005 - 23:20 #12
sådan kan det gå når det bliver skrevet i hast  ;-)
Avatar billede weeelo Nybegynder
09. maj 2005 - 23:21 #13
Hvordan skal pointene fordeles? erikjacobsen satte mig trods alt igang..
Avatar billede erikjacobsen Ekspert
10. maj 2005 - 00:07 #14
Jeg samler slet ikke på point, tak.
Avatar billede weeelo Nybegynder
10. maj 2005 - 00:09 #15
Jamen, så er de hermed givet til fsconsult.dk - Mange tak for hjælpen til jer begge.
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
Computerworld tilbyder specialiserede kurser i database-management

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