weeknmr uit maand halen
Hoi,
Ik heb naast mijn kolom van datum een kolom met weeknummers
dus bv
datum weeknmr
20100726 26
20100727 26
Nou zou ik graag een query maken dat ik van een bepaalde maand de bijbehorende weeknummers ophaald, dus bv
maand januari : week 1, 2 , 3 en 4
Doel is om vervolgens met deze weeknummers weer verder te werken...
Iemand suggesties ?
Ik heb naast mijn kolom van datum een kolom met weeknummers
dus bv
datum weeknmr
20100726 26
20100727 26
Nou zou ik graag een query maken dat ik van een bepaalde maand de bijbehorende weeknummers ophaald, dus bv
maand januari : week 1, 2 , 3 en 4
Doel is om vervolgens met deze weeknummers weer verder te werken...
Iemand suggesties ?
Gesponsorde koppelingen:
Met Datepart kun je - in gebruik met 'wk' - het weeknummer opvragen. Dit hoef je dus niet apart op te slaan.
Een SQL-query zou kunnen zijn:
Dit is trouwens ook in PHP te doen. Eigenlijk hoef je voor jouw verhaal alleen de eerste én het laatste weeknummer te weten. Dan moet je dus:
Maar SQL is toch vaak beter met Datum-functies.
Een SQL-query zou kunnen zijn:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
SELECT
DATEPART(wk, datum) as weeknr
FROM
tabel
WHERE
datum BETWEEN '2010-01-01' AND '2010-01-31'
GROUP BY
weeknr
DATEPART(wk, datum) as weeknr
FROM
tabel
WHERE
datum BETWEEN '2010-01-01' AND '2010-01-31'
GROUP BY
weeknr
Dit is trouwens ook in PHP te doen. Eigenlijk hoef je voor jouw verhaal alleen de eerste én het laatste weeknummer te weten. Dan moet je dus:
Code (php)
Maar SQL is toch vaak beter met Datum-functies.
Hoi Mark,
Bedankt voor je reactie !
Het lastige is denk ik alleen dat ik geen begin en eind datum van die maand hebt.
Ik heb alleen de maandnummer, dus ik kan de hele maand seleceteren...maar kan ik daar dan ook de weeknummers uit pulken ?
Bedankt voor je reactie !
Het lastige is denk ik alleen dat ik geen begin en eind datum van die maand hebt.
Ik heb alleen de maandnummer, dus ik kan de hele maand seleceteren...maar kan ik daar dan ook de weeknummers uit pulken ?
Mark L op 01/08/2010 09:41:43:
Met Datepart kun je - in gebruik met 'wk' - het weeknummer opvragen. Dit hoef je dus niet apart op te slaan.
Dat is iets van microsoft database. Hij gebruikt mysql.
Verder moet hij eens dat achterlijke formaat weg doen en die datum opslaan als een echte datum, zoals eerder vermeld.
Dan kan hij gewoon gebruik maken van de mysql functie week.
@ Karl.
Oh. Had 't even opgezocht op google, maar ik had SQL ingetypt. Kan dus idd zijn dat het Microsoft is. Verder niet naar gekeken. Bedankt voor de info! :)
Je hebt alleen een maandnummer? Dus Januari is dan dus 1. Ik zie het probleem niet. Januari duurt 31 dagen, Februari 28 (als jaar%4 === round(jaar%4), dan 29), Maart 31, April 30, Mei 31... etc.
Je kunt de begin en einddata dus zelf invullen. Ook kun je doen +1 maand...
Oh. Had 't even opgezocht op google, maar ik had SQL ingetypt. Kan dus idd zijn dat het Microsoft is. Verder niet naar gekeken. Bedankt voor de info! :)
John van der Linden op 01/08/2010 10:26:27:
...
Het lastige is denk ik alleen dat ik geen begin en eind datum van die maand hebt.
Ik heb alleen de maandnummer, dus ik kan de hele maand seleceteren...maar kan ik daar dan ook de weeknummers uit pulken ?
Het lastige is denk ik alleen dat ik geen begin en eind datum van die maand hebt.
Ik heb alleen de maandnummer, dus ik kan de hele maand seleceteren...maar kan ik daar dan ook de weeknummers uit pulken ?
Je hebt alleen een maandnummer? Dus Januari is dan dus 1. Ik zie het probleem niet. Januari duurt 31 dagen, Februari 28 (als jaar%4 === round(jaar%4), dan 29), Maart 31, April 30, Mei 31... etc.
Je kunt de begin en einddata dus zelf invullen. Ook kun je doen +1 maand...
Inderdaad, gebruik gewoon Datetime();
Met PHP vul je die zo:
Je leest het zo uit:
Succes,
Lars
Met PHP vul je die zo:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
// Hiervoor de MySQL verbinding starten!
mysql_query("UPDATE tabel SET veldmetdatetime=NOW() WHERE veld='Dit'");
// Of een insert:
mysql_query("INSERT INTO tabel (veldmetdatetime) VALUES(NOW())");
?>
// Hiervoor de MySQL verbinding starten!
mysql_query("UPDATE tabel SET veldmetdatetime=NOW() WHERE veld='Dit'");
// Of een insert:
mysql_query("INSERT INTO tabel (veldmetdatetime) VALUES(NOW())");
?>
Je leest het zo uit:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
// Hiervoor de MySQL connectie starten!
$res = mysql_query("SELECT UNIX_TIMESTAMP(veldmetdatetime) AS datum FROM tabel WHERE veld='dit'");
$sel = mysql_fetch_array($res);
echo 'De tijd is: '.date("H:i", $sel['datum']);
?>
// Hiervoor de MySQL connectie starten!
$res = mysql_query("SELECT UNIX_TIMESTAMP(veldmetdatetime) AS datum FROM tabel WHERE veld='dit'");
$sel = mysql_fetch_array($res);
echo 'De tijd is: '.date("H:i", $sel['datum']);
?>
Succes,
Lars
Als je nu je datums opslaat zoals het hoort, datetime of date. Dan kan je met de functie WEEK() van mysql zo je weeknummer opvragen.
Dit iets wat je bedoelt?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$qry = "SELECT
veld1,
veld2,
veld3,
WEEK(datum) AS weeknummer,
DATE_FORMAT(datum, '%d-%m-%y %H:%i') AS newdate
FROM
tebelnaam
ORDER BY
veld1
ASC";
if($sql = mysql_query($qry))
{
// Goed, maar nog wel even meer controles inbouwen.
$rec = mysql_fetch_assoc($sql);
echo 'Op de dag '.$rec['newdate'].' zit je in week '.$rec['weeknummer'];
}
else
{
echo 'Fout in query.';
}
?>
$qry = "SELECT
veld1,
veld2,
veld3,
WEEK(datum) AS weeknummer,
DATE_FORMAT(datum, '%d-%m-%y %H:%i') AS newdate
FROM
tebelnaam
ORDER BY
veld1
ASC";
if($sql = mysql_query($qry))
{
// Goed, maar nog wel even meer controles inbouwen.
$rec = mysql_fetch_assoc($sql);
echo 'Op de dag '.$rec['newdate'].' zit je in week '.$rec['weeknummer'];
}
else
{
echo 'Fout in query.';
}
?>
Dit iets wat je bedoelt?


