[MySQL] hulp bij between query

Pagina: 1
Acties:

  • ferrero
  • Registratie: Juli 2002
  • Laatst online: 02-12-2025

ferrero

el mosquito

Topicstarter
Kan iemand mij helpen met de volgende query:

SELECT COUNT(1) FROM urenregistratie WHERE werknemerID = '2' AND Type = 'Urenregistratie' AND DATE_FORMAT( vanDatum,'%d-%m-%Y') = '29-03-2006' AND vanTijd NOT BETWEEN '03:00' AND '12:00' AND totTijd NOT BETWEEN '03:00' AND '12:00';

Deze query moet kijken of er al een registratie geweest is op een bepaalde dag, op een bepaalde tijd.

Stel in de DB staat al een registratie tussen 08:00 en 12:00. dan....

Moet de query '1' geven tussen 10:00 en 14:00 (mag niet, want overlapt geregistreerde tijd)
Moet de query '1' geven tussen 09:00 en 11:00 (mag niet, want valt geheel binnen geregistreerde tijd)
Moet de query '1' geven tussen 07:00 en 14:00 (mag niet, overlapt beheel vorige tijdregistratie)
Moet de query '0' geven tussen 13:00 en 16:00 (mag wel, want deze tijd is nog niet geregistreerd)

Een beetje omslachtig uitgelegd misschien. Maar ik hoop dat jullie het snappen en me verder kunnen helpen :)

Alvast bedankt!

[ Voor 13% gewijzigd door ferrero op 31-03-2006 09:35 ]

Innocam | Synology Camera Licentie per E-mail


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Staat die tijd soms als string in de database?

offtopic:
Waarom trouwens die conversie van date naar string middels DATE_FORMAT? :? Er zijn meer datumfuncties die je kunt gebruiken hoor. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • orf
  • Registratie: Augustus 2005
  • Nu online

orf

En waarom de tijd en datum apart opgeslagen en niet in een DATETIME?

  • ferrero
  • Registratie: Juli 2002
  • Laatst online: 02-12-2025

ferrero

el mosquito

Topicstarter
De tijd velden zijn TIME fields
Het date veld is een DATE field

Omdat ik losse velden op mn form heb wil ik het niet in één veld hebben.

Innocam | Synology Camera Licentie per E-mail


  • DexterDee
  • Registratie: November 2004
  • Nu online

DexterDee

I doubt, therefore I might be

Je kunt heel makkelijk de DATE en TIME functies aanroepen om in een query voor 1 veld zowel de datum als de tijd apart terug te geven. Scheelt je weer een hoop gezeik. Omgekeerd is het ook mogelijk om met deze functies twee velden weer gecombineerd terug in de database te schrijven :)

http://dev.mysql.com/doc/...e-and-time-functions.html

[ Voor 12% gewijzigd door DexterDee op 31-03-2006 09:40 ]

Klik hier om mij een DM te sturen • 3245 WP op ZW