Toon posts:

[MySQL] simpele select dacht ik

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik wil een vrij simpele select doen, alleen kom ik er niet echt uit, ik heb een tabel met een kolom met een speciale datum syntax nl zo: YYYY-MM-DD-UU (UU= uur); nu staat er van elk uur een rij in de kolom, en wil ik alleen de laatste 24 uur selecten...

ik zit me rot te fantaseren; hoe doe ik dit nou ?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

ermm...

tja als je een normaal date veld had gebruikt had je het binnen twee tellen kunnen doen....

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
Op vrijdag 10 mei 2002 16:32 schreef LuCarD het volgende:
ermm...

tja als je een normaal date veld had gebruikt had je het binnen twee tellen kunnen doen....
i know, maar dit is een bestaande database, waarbij het wellicht meer werk is om dit om te bouwen dan om een goeie select te bedenken

  • Crazy D
  • Registratie: Augustus 2000
  • Nu online

Crazy D

I think we should take a look.

Op vrijdag 10 mei 2002 16:30 schreef Kertje het volgende:
ik wil een vrij simpele select doen, alleen kom ik er niet echt uit, ik heb een tabel met een kolom met een speciale datum syntax nl zo: YYYY-MM-DD-UU (UU= uur); nu staat er van elk uur een rij in de kolom, en wil ik alleen de laatste 24 uur selecten...
Datumfuncties van MySql ken ik zo niet uit m'n hoofd, maar ik neem aan dat er een functie is om de datum/tijd van "24 uur geleden" te krijgen. Gebruik je die, om daarmee een string te formatteren in het formaat wat je wilt, om die in het 1e deel van je where te gebruiken, en een 2e string formatteer je op dezelfde manier alleen dan voor de huidige datum/tijd.
Oftewel zoiets"
code:
1
2
3
4
5
6
SELECT *
FROM Tabelletje
WHERE 
  datumveld >= Jaar(24uurgeleden) + '-' + Maand(24uurgeleden) + '-' Dag(24uurgeleden) + '-' + Uur(24uurgeleden) 
  AND
  datumveld <= Jaar(nu) + '-' + Maand(nu) + '-' Dag(nu) + '-' + Uur(nu)

Exact expert nodig?


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Op vrijdag 10 mei 2002 16:40 schreef Kertje het volgende:

[..]

i know, maar dit is een bestaande database, waarbij het wellicht meer werk is om dit om te bouwen dan om een goeie select te bedenken
Daarom wordt er ook zo enorm gehamerd op het goed ontwerpen van een DB. Daarnaast is dit probleempje oplossen mischien minder werk dan het aanpassen van je DB, maar je zult nog veel meer problemen tegen gaan komen. Elk van die problemen zal ook opgelost moeten worden. Als je al die tijd bij elkaar op gaat tellen dan weet ik zeker dat het zo snel mogelijk correct maken van je ontwerp een heleboel tijd gaat schelen. Daarnaast geld trouwens dat hoe langer je wacht hoe meer dingen je aan zult moeten passen.

Ik raad je aan om er toch maar een datum veld van te maken. Dat lijkt mischien nu veel werk, maar dit zal je later een hoop werk besparen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Kertje:
waarbij het wellicht meer werk is om dit om te bouwen dan om een goeie select te bedenken
Maar wel lelijk (zie Janoz ;)). Daarom toch maar ff een propere table ervan maken. Ik ga ervan uit dat jouw oude column "Fout" heet :)

1-Nieuwe column "Goed" aanmaken, type=DATETIME
2-Exec deze:
code:
1
2
3
UPDATE TABLE Jouw_Tabel
SET
Goed = CONCAT(substring(Fout, 0, 10), ' ', substring(Fout, 11, 2), ':00:00')

3-Verwijder column "Fout"

This can no longer be ignored.


Verwijderd

Topicstarter
Op vrijdag 10 mei 2002 19:39 schreef Janoz het volgende:

[..]

Daarom wordt er ook zo enorm gehamerd op het goed ontwerpen van een DB. Daarnaast is dit probleempje oplossen mischien minder werk dan het aanpassen van je DB, maar je zult nog veel meer problemen tegen gaan komen. Elk van die problemen zal ook opgelost moeten worden. Als je al die tijd bij elkaar op gaat tellen dan weet ik zeker dat het zo snel mogelijk correct maken van je ontwerp een heleboel tijd gaat schelen. Daarnaast geld trouwens dat hoe langer je wacht hoe meer dingen je aan zult moeten passen.

Ik raad je aan om er toch maar een datum veld van te maken. Dat lijkt mischien nu veel werk, maar dit zal je later een hoop werk besparen.
ik weet het, maar het is een bestaande applicatie die ik niet zelf gemaakt heb :) is van een bedrijf en ik moet er een stukje aan bouwen...

crazy, ik zal dat morgen (moe nu weg :/) ff proberen, maar lijkt me niet dat dat gaat werken toch? je kunt toch niet zeggen "tussen 2002-05-10-5 en 2002-05-11-05" met mysql ?

erik, kanniet helaas :)

  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Ok, hier nog ff mijn ding in SELECT vorm, met bugfixes :)

Traag & lelijk: (met ingebouwde ironie >:))
code:
1
2
3
4
5
SELECT  Zooi
FROM    TabelDoorSlechteOntwerper
WHERE   UNIX_TIMESTAMP(CONCAT(SUBSTRING(SlechtFormaat,7,4),'-',SUBSTRING(SlechtFormaat,4,2),'-',SUBSTRING(SlechtFormaat,1,2),' ',SUBSTRING(SlechtFormaat,12,2),':00:00'))
      >
      (UNIX_TIMESTAMP() - 24 * 3600)

This can no longer be ignored.


  • klokop
  • Registratie: Juli 2001
  • Laatst online: 17-06 14:59

klokop

swiekie swoeng

[volkomen ot]
Heb jij wel is iemand dood gemaakt met een blije mus...?
Leuk. :) Van kaliber 'lang nagrinneken'.
[/volkomen ot]

"Passing silhouettes of strange illuminated mannequins"


Verwijderd

Topicstarter
dank, heb het met combinatie van jullie codes voor elkaar :)
Op zaterdag 11 mei 2002 13:04 schreef klokop het volgende:
[volkomen ot]
[..]

Leuk. :) Van kaliber 'lang nagrinneken'.
[/volkomen ot]
:+
Pagina: 1