Palme Skrevet 21. august 2009 Del Skrevet 21. august 2009 Jeg har en tabell som er følgende: id | navn | en_fra_dato | en_til_dato | ---------------------------------------------- 1 | Meg | 3/20/2009 | 3/25/2009 | 2 | Deg | 3/26/2009 | 3/27/2009 | Jeg ønsker å telle hvor mange dager det er mellom en_fra_dato til en_til_dato og sitte det inn i en ny kolonne. Noe alà slik: id | navn | en_fra_dato | en_til_dato | antall_dager | --------------------------------------------------------------- 1 | Meg | 3/20/2009 | 3/25/2009 | 6 | 2 | Deg | 3/26/2009 | 3/27/2009 | 2 | Lar dette seg gjøre? Lenke til kommentar
kaffenils Skrevet 21. august 2009 Del Skrevet 21. august 2009 (endret) Selvfølgelig, men har du noen veldig god grunn til å lagre denne informasjonen i databasen i stedet for å kalkulere det "on the fly"? Skal du f.eks. søke på denne verdien og derfor har behov for en index? Du sier heller ikke noe om hvilket DBMS du bruker, men de fleste DBMS har f.eks. en DATEDIFF funksjon. Endret 21. august 2009 av kaffenils Lenke til kommentar
norpheus Skrevet 21. august 2009 Del Skrevet 21. august 2009 (endret) Ja, det lar seg gjøre Legg til ny kolonne i tabellen, dette gjøres sånn tror jeg: ALTER TABLE 'tabellnavn' ADD antall_dager INTEGER (mulig du må legge til 'default value 0' eller noe) Fyll den nye kolonnen med data: UPDATE 'tabellnavn' SET antall_dager=DATEDIFF(en_fra_dato, en_til_dato) Dette burde ihvertfall gi en god indikasjon på fremgangsmåten, lykke til! Edit: som nevnt over pleier man normalt sett å kjøre slike utregninger on-the-fly, slik unngår man unødvendig data og feilkilder. Endret 21. august 2009 av norpheus Lenke til kommentar
BlueEAGLE Skrevet 6. september 2009 Del Skrevet 6. september 2009 1: Du vil ikke lagre disse dagene i databasen, men du vil kalkulere dem når du henter ut data slik: SELECT navn, en_fra_dato, en_til_dato, DATEDIFF(en_fra_dato, en_til_dato) as antall_dager FROM tabell; Lenke til kommentar
blackbrrd Skrevet 9. september 2009 Del Skrevet 9. september 2009 Hvis du bruker postgresql så kan du gjøre noe slikt: ALTER TABLE tabell ADD COLUMN antall_dager integer; UPDATE tabell SET antall_dager = en_til_dato-en_fra_dato; Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå