Avatar billede cronaldo Nybegynder
06. februar 2011 - 10:36 Der er 3 kommentarer og
1 løsning

Hente tid ud fra et datestamp og en timestamp.

Tabeller:

booking_options
----------------
    id    int(11)                                   
    option_name            text
    option_time      time                           
    active    datetime                               
    author_id    int(11)                           
    date

calendar_bookings
----------------
        id    int(11)                           
    entry_id    int(11)                        
    entry_date    date                           
    entry_status    int(1)                               
    employee_id    int(11)                        
    comments    text                           
    author_id    int(11)                           
    date

Det, der er min mening er, at man skal lægge alle bookinger ind i "calendar_bookings". Den pågældende booking er koblet på booking_options, hvor man lægger alle "produkter" , der kan vælges. På den måde får man en tid (booking_options.option_time) på, hvor lang tid den pågældende booking tager. Fx 14:00:00

Dernæst er der yderligere to tabeller, hvor i de aktiverede dage ligger. Den første er standarddage, hvor man kan lægge fra man-søn og angive hvor lang tid der er tilgængelig på den pågældende dag. fx 07:30:00
Den næste har samme funktion vedr. datoen, men der kan man lægge specifikke datoen - hvis man fx ønsker at holde åbent påskedag el.lign.

calendar_days
----------------
        day_iso    int(1)                           
    time_available    time                           
    author_id    int(11)                               
    date


extra_calendar_days
----------------
    month    int(2)                               
    day    int(2)                               
    year    int(4)                           
    calendar_date    date                           
    time_available    date                   
    author_id    int(11)                           
    date

Mit problem er, at jeg nu vil have udregnet en startdato og slutdato for en forekomst i calendar_bookings udfra den tid, der er sat, at bookingen skal tage, i booking_options divideret med den tid, der er til rådighed på den pågældende dag i calendar_days eller extra_calendar_days

Hvordan kan jeg lige lave den SQL query!? Jeg er lidt tabt. Indledningsvist har jeg selv prøvet med noget SEC_TO_TIME( SUM( TIME_TO_SEC( 'booking_options.option_time') ) ) for at finde ud af hvor meget tid der er brugt på en specifik dato. Problemet er bare, at det ikke er nok, for hvis der er en forekomst på 14 timer kan der kun laves 7,5 af de 14 timer på den pågældende dag - og så vil det være forkert at sige, at der i alt er 14 timer denne dag, men mere korrekt at sige, at der er 7,5 timer på dag1 og 6,5 timer på dag2.
Avatar billede webweaver Praktikant
06. februar 2011 - 11:05 #1
Og du vil ikke bare dele tallet efterfølgende, som du får ud med et regnestykke? Altså mener, hvis du får det rigtige antal timer ud, så burde det nok kunne lade sig gøre at dele tallet, hver gang det når 7,5 ...
Avatar billede cronaldo Nybegynder
06. februar 2011 - 13:27 #2
Det har du ret i, men ideen er, at jeg skal have en ekstra tabel med indstillinger, hvor man kan sætte antal medarbejdere samt antallet af timer pr. medarbejder og derved skal den udregne det summerede antal timer pr. dag. Når dette opnås skal datoen gøres rød :o)

Måske en smule indviklet, men det giver god nok mening :o)
Avatar billede cronaldo Nybegynder
06. februar 2011 - 22:08 #3
Det handler simpelthen om, at jeg ønsker at holde min kode så adskildt så muligt - det hele skal gerne ligge i min model, så controlleren kun skal forholde sig til et array.. Men jeg tror har fundet en anden PHP-løsning nu. Hvis du skal have point må du smide et svar. ;)
Avatar billede webweaver Praktikant
08. februar 2011 - 22:55 #4
Why .. Du har jo givet dig selv point?

Men udover det, så havde jeg ikke tænkt mig at smide et svar her alligevel, da jeg ikke har bidraget med noget synderligt :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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