FAQ |
Kalender |
![]() |
#11 | ||
|
|||
Nykomling
|
En signed integer jämfört mot unsigned borde rent logiskt kräva en bit mer, inte en byte. Och även om det handlade om 1 byte per rad så skulle man spara 1 kB per 1024 rader.
Sen för övrigt kräver datetime 8 bytes, inte 9 bytes som du sa. För födelsedatum skulle jag rekommendera typen "DATE" som endast lagrar år, månad och dag. Den är 3 bytes stor till skillnad från en standard integer på 4 bytes(oavsett om den är signed eller unsigned). Om du skulle köra en signed 4-bitars integer(och det skulle jag rekommendera om du tvunget ska köra unixtime, för du kan aldrig lita på att unixtime kommer att fungera helt med alla system du kan tänkas vilja integrera med sen annars), så skulle du med unixtime kunna hålla koll på datum från 1902 -> 2038, medans date stödjer 1000-01-01 till 9999-12-31 |
||
![]() |
![]() |
![]() |
#12 | |||
|
||||
Mycket flitig postare
|
OK, tack för all info. Jag har aldrig tagit mig för att använda MySQLs dateprylar av den simpla orsaken att jag alltid kört med PHPs datumfunktioner. Kanske dags att vänja om sig snart då.
Men är det nån som har ett bra knep för att omvandla alla INT till DATE då? Som jag skrev förut så vägrade den ta min unsigned int som parameter. Det sög. ![]() Ska göra ett till försök senare nån gång. |
|||
![]() |
![]() |
![]() |
#13 | ||
|
|||
Klarade millennium-buggen
|
totoo: www.php.net/strtotime samt www.php.net/date
|
||
![]() |
![]() |
![]() |
#14 | |||
|
||||
Mycket flitig postare
|
Tack Jonas, men nu läste du nog lite fel. PHP-prylarna behärskar jag, nu låter jag mig övertalas till att göra som ni säger, men då tillåter ju inte MySQL mig att omvandla databasinnehållet till rätt typ.
|
|||
![]() |
![]() |
![]() |
#15 | ||
|
|||
Mycket flitig postare
|
Kod:
UPDATE yourTable SET new_date = DATE_ADD('1970-01-01', INTERVAL old_timestamp, SECOND) |
||
![]() |
![]() |
Svara |
|
|