3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)
  • Q:
    Bijdrager
    dj bazzie wazzie

    [MySQL] datum ophalen aan hand van weeknummer

    Hoi ik wist eigenlijk niet zo goed waar ik deze topic moet plaatsen maar omdat ik mysql aak benader via de terminal heb ik terminal maar gepakt als hofd topic.

    Mijn probleem is dit. Ik wil graag een query hebben zodat ik aan de hand van het jaar, weekdag en weeknummer een datum gereturned kan krijgen. Gegevens in de database staan onder een bepaalde datum. Het interface wat ik gebruik werkt op weeknummer. Om bijvoorbeeld data op te halen van maandag in week nummer 42 in het jaar 2006 is vrij simpel

    table1 –mysqltabel
    tijd_in_seconden –kolom van table1 als integer
    data –kolom van table1 als text
    datum –kolom van table1 als date

    [code:1:2743292894]SELECT SEC_TO_TIME(table1.tijd_in_seconden), table1.data
    FROM table1
    WHERE DAYOFWEEK(table1.datum) = ‘1’
    AND WEEK(table1.datum) = ’42’
    AND YEAR(table1.datum) = ‘2006’[/code:1:2743292894]

    Alleen nu weet ik niet welke datum dit is. Graag zou ik vanuit MySQL willen weten welke datum bij maandag in weeknummer 42 in 2006 bij hoort. Ik weet wanneer ik de kolom datum zou selecteren dat ik er dan al was. Maar wanneer er geen data onder deze dag te vinden is weet ik de dag ook niet.

    Bijdrager
    mac748

    misschien zo:
    [code:1:799c91ac26]
    SELECT ADDDATE(’2006-01-01′, 42*7+1), SEC_TO_TIME(table1.tijd_in_seconden), table1.data
    FROM table1
    WHERE DAYOFWEEK(table1.datum) = ‘1’
    AND WEEK(table1.datum) = ’42’
    AND YEAR(table1.datum) = ‘2006’
    [/code:1:799c91ac26]
    waarbij 2006, 42 en 1 de parameters zijn die je aan de query mee geeft

    Bijdrager
    dj bazzie wazzie

    Ja dank je wel.

    Ik heb hem veranderd naar:
    [code:1:78544ea138]SELECT ADDDATE((date(ADDDate(’2005-01-04′, INTERVAL -weekday(’2005-01-04’) DAY))), INTERVAL +(7*40)-7 DAY)[/code:1:78544ea138]

    Nu werkt het voor ieder jaar. Dat het dit jaar werkte kwam omdat de dagen dat de jaar wisseling is geweeest ook gelijk de week door midden brak. Ik reken vanaf 4 januari omdat ik dan zeker weet dat ik in week 1 zit en niet in week 52 van een jaar ervoor.

    Nogmaals bedankt

3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.