[mySQL] SELECT op dag van week werkt niet in week 1

Pagina: 1
Acties:

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 11:28
Duidelijke topic titel niet?

Oftewel...Zit weer enorm te klooien met datums (wordt wel erg verwarrend als ik het data noem he).

Voor een uren management programma bereken ik per dag het aantal uren en laat deze op het scherm zien. Dit gebeurt met een SQL query
PHP:
1
2
3
4
5
$sql = "SELECT SUM(Hours), MAX(Reject) AS Reject, MAX(Pending) AS Pending, MAX(SignedByEmpID) AS Signed, MAX(HardCopy) AS Hardcopy, MAX(Imported) AS Imported FROM History WHERE ";
                    $sql.= "EmpID = ".$UserID;
                    $sql.= " AND WEEK(Date,1) = ".$i;
                    $sql.= " AND YEAR(Date) = ".$Year;
                    $sql.= " AND WEEKDAY(Date) = ".$j;


$i = de week waar we inzitten,
$Year = het huidige jaar
$j = itereert van 0 tot 6

Dit werkt allemaal prachtig met normale weken, maar laat nu net week 1 in 2 jaren zitten...

Hierdoor krijg ik alleen resultaten van donderdag en vrijdag.

Opzich wel logisch, omdat het jaar 2004 is en geen resultaten opleverd voor week 1 en dag 0.

Heeft iemand een idee hoe ik dit euvel op kan lossen?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Met ISO jaren werken, tenminste als MySQL daar een functie voor heeft.
edit:
voorbeeld in Oracle:
SQL> select to_char(sysdate,'iyyy') from dual;
TO_C
----
2004

SQL> select to_char(sysdate-3,'iyyy') from dual;
TO_C
----
2004

Die iyyy staat voor ISO jaar, hierin worden de dagen in weer 1 bij het nieuwe jaar gerekend.
sysdate is de systeemdatum.

[ Voor 78% gewijzigd door justmental op 02-01-2004 15:00 ]

Who is John Galt?


  • Skaah
  • Registratie: Juni 2001
  • Niet online
De gevens aanvullen met de eerste vijf dagen van de laatste week van 2003?