Avatar billede phpsessid Nybegynder
28. januar 2005 - 22:19 Der er 6 kommentarer og
2 løsninger

Er datoer ikke nemmest at behandle som integers

Hej,

Jeg har nogle spørgsmål angående "datetime vs. int"

Hvilket er smartest i de fleste sammenhænge?

Skal alt ældre end en bestemt dato slettes, er dette nemmest at administrere med integers?

Derimod hvis man skal lave en kalender (som jeg er ved), så er det svært at finde hvilke "indlæg" der f.eks. er til januar måned?

Og slutteligt, så regner jeg med at lave administrator-siden, således at datoerne vælges i nogle drop-down-bokse (en til hvert valg: minut,time,dag,måned,år), og hvis jeg bruger integers, hvordan konverterer jeg så dette input til en int?
Avatar billede alister_crowley Nybegynder
28. januar 2005 - 22:21 #1
jeg vil altid mene at et timestamp (www.php.net/time) er det nemmeste, da du derefter nemt kan behandle datoen med date() (www.php.net/date)

Og så kan du nøjes med et INT felt i mysql til at lagre dato'en i, og så er det også nemmere at sortere ASC og DESC på , end ved brug af andre speciel typer.
Men det er et spørgsmål, og det er PHP eller SQL som skal lave det meste af arbejdet.
Avatar billede phpsessid Nybegynder
28. januar 2005 - 22:45 #2
Er det ikke altid mest rationelt at have den liggende som int i mysql?
Avatar billede alister_crowley Nybegynder
28. januar 2005 - 22:51 #3
Det kommer vel igen an på om man bruger sin MySQL tværfagligt med andre ting.
Hvis du nu også skulle bruge dato'en til en Java application, så var timestamt stadig smartest ;)
Men hvis du nu løb ind i et sprog (COBOL ?) som ikke kunne bruge UNIX-TIMESTAMP men godt kunne analysere den anden dato, var det jo nok smartest med NOW() (mysql kommando)
Dog har jeg aldrig set nogle bruge COBOL og MySQL ;-)
Avatar billede arne_v Ekspert
28. januar 2005 - 23:11 #4
ORDER BY af en DATETIME virker fint i MySQL
Avatar billede hmortensen Nybegynder
29. januar 2005 - 10:13 #5
Jeg ville bruge DATETIME. Du kan så formatere dato/tid i dit udtræk med DATE_FORMAT().

I DATETIME felt gemmes værdien sådan her:
'YYYY-MM-DD HH:MM:SS', og der kan derfor sorteres på samme måde som med integers, som arna påpeger.
Avatar billede Slettet bruger
06. februar 2005 - 02:19 #6
Jeg bruger altid rigtige datofelter i mine databaser og timestamps i min PHP-kode. På den måde føler jeg, at jeg får størst mulig fleksibilitet og kontrol.

Når jeg sætter ind i databasen, bruger jeg FROM_UNIXTIME() og når jeg henter data ud, bruger jeg UNIX_TIMESTAMP(). Dermed kan jeg bruge alle funktionerne til dato/tidsbehandling i både MySQL http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html og PHP http://dk.php.net/manual/da/ref.datetime.php og PHP kan automatisk oversætte datoen til andre sprog for mig, hvis jeg skulle have brug for det.
Avatar billede phpsessid Nybegynder
15. februar 2005 - 23:41 #7
Jeg takker... point?
Avatar billede Slettet bruger
16. februar 2005 - 02:42 #8
Nu sagde du ikke lige hvem du mener fortjener point, så her er et svar fra mig.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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