Gå til innhold

Finne antall dager mellom to datoer


Anbefalte innlegg

Skrevet

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?

Videoannonse
Annonse
Skrevet (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 av kaffenils
Skrevet (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 av norpheus
  • 3 uker senere...
Skrevet

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;

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...