16. september 2010 - 00:43Der er
6 kommentarer og 1 løsning
ugeudtræk fra database
Hej
Jeg vil meget gerne kunne trække noget data ud fra min database ud fra hvilken uge de er blevet lagt i databasen.
For hver række i min tabel har jeg gemt tiden som UNIX time stamp.
jeg vil gerne have at uge-link-variablen bliver på formen: week=372010 eller week=37-2010
jeg har rodet lidt med det, men er ret sikker på at jeg har en masse unødvendige linjer med, og det tager heller ikke højde for år med 53 uger, derfor vil jeg slet ikke lægge det op.
men bare skitsere mine ideer her:
if (!isset($_REQUEST['week']) { Denne uge }
$dbs = ud fra $_REQUEST lave en start på uger fra 00:00 $dbe = evt bare lægge 7dage - 1 sekund til
nogen der kan lave en sådan kode der også tager højde for år med 53 uger?
DECLARE @FirstDayOfWeek DATETIME SET @FirstDayOfWeek = (select DateAdd(week, @Week- 1,'1/1/' + CAST(DATEPART(yy,getdate()) as varchar(4))))
SELECT * FROM nop_order WHERE (CAST(DATEPART(year,createdon) as char(4)) + '-' + CAST(DATEPART(week,createdon) as char(2))) = (CAST(DATEPART(year,@FirstDayOfWeek) as char(4)) + '-' + CAST(DATEPART(week,@FirstDayOfWeek) as char(2)))
En lille ting. som sagt ved jeg ikke hvordan unix time stamp ser ud.
Men fremgangsmåden er det samme
1) Find en dato inden for den uge du efterspørger (dateadd) 2) Converter dato i din database til åååå-uu (format) 3) String comparison 'åååå-uu' = 'åååå-uu'
Hvis din db har Format funktion så er det ret simpelt. Det har mssql desværre ikke. Derfor den lidt komplekse én.
Mange tak for hjælpen - har desværre valgt at benytte en anden metode der løser samme problem, men smid gerne et svar showsource - det virker til at være en fornuftig metode
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.