Jeg har været ude i noget af det samme som dig. Jeg ville gerne have et felt til dato, tid, måned, ugedag og år. Min løsning blev en kolonne for hver. Mht. datoen, så valgte jeg at se bort fra mysql`s egen datoformat. Og oprettede istedet feltet som en almindelig char, på 2 karaterer. PHP generere så datoen, som jeg herefter smider ned i tabellen. Dog skal du lige overveje om din side skal bruges i udlandet også. I så fald er det mere hensigtsmæssigt at bruge et clientsite script til at generere tiden ihvertfald!
Mht. datatype til tid, bruger jeg ligeledes en almindelig char type på 5. Tiden bliver så vist som 00:00!!
Mht. sammenligning at dato, så kan der opstå problemer som nævnes i første svar. Skiller du det KOMPLET ad (har jeg gjort), så har du faktisk kun et tal i datokolonnen. Sammenholdt med måned-kolonnen, har jeg ikke oplevet problemer.
Vælger du at datoen genereres som eks. 20.05.2003, altså sammenholder både dato, måned og år, så kan baladen opstå.....
Ja, kan godt være min metode er ret alternativ. Jeg har simpelthen bare valgt at skille $mysql_format = date("Y-m-d H:i:s", time()); ad, således at jeg får hver oplysning ned i sit eget felt.
Giver mig sådan set ingen problemer i en select:
(SELECT * FROM registreringer WHERE dato ='5' ORDER by maaned asc); eller hvad det nu måtte være....... Jeg valgte metoden idet jeg gerne ville kunne søge selvstændigt på hhv. dato, tid måned og år.....
Ja OK! Gjorde det nu også for nemmere at kunne skille dem ad, når jeg udskriver dem. Dette kan jeg så formentlig OGSÅ gøre med "datetime". Men nu kører det fint, som det er. Kan godt se at det andet måske er mindre omfattende. Og jeg vil således overveje det en anden gang.
Det er vel nok et sp. om erfaring. Jo mere erfaring man med tiden får, jo smartere metoder finder man naturligvis også :)
staf> Det er jo netop derfor vi nævner det.... Det kunne være der var en helt speciel årsag til at det er smart i dit tilfælde. Det er dog ikke ensbetydende med at det er godt i alle tilfælde. Hvis du siger det er et udslag af manglende erfaring er det da helt ok, det kan man jo ikke bebrejde nogen.
Det ville bare være synd at lære "dårlig" kode fra sig når andre også mangler erfaringen.
Der er ingen grund til at bekymre sig om at smide dagsdato frem og tilbage... den kan ALTID skabes hvor den skal bruges hvad enten det er DB eller php som skal bruge den. Du skal nøjes med at flytte de data som brugeren selv indtaster.
medmindre du vil have tiden sammen med alt det andet :)
>kaptajnkemo "Det ville bare være synd at lære "dårlig" kode fra sig ........." Nu er det vel mere et sp. om specifik mysql teori, og ikke decideret kodning. Men buker med da naturligvis pænt for bedre forslag, i det pågældende tilfælde ;)
Jeg siger mange tak for hjælpen :) Hvis der er en af jer, der lige vil tjene 5 points mere, så kan I jo passende svare på, hvordan jeg ordner det sådan, at den første indtastning forbliver som den er indtastet, og ikke laves om : 1. : 041191 2. : 41191
staf> Udtrykket dårlig kode er i mangel af bedre. Jeg mener bare at det ikke er god stil at bruge datatyperne som du nævner (med mindre der absolut ikke er anden mulighed). I dette tilfælde drejer det sig jo netop om databaseteori, og det er mere eller mindre fastlagt hvordan man skal (bør) forholde sig til det. Min databaseteori siger i hvertfald at man skal bruge de korrekte datatyper når det er muligt ;)
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.