[mysql] between dates nederlands formaat

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Maaark
  • Registratie: Juli 2008
  • Laatst online: 20:26
Zoals de titel zegt zoek ik een manier om een select te doen via mysql in een php bestand.
Helaas zijn de datums niet als timestamp opgeslagen maar in het volgende formaat:
dd-mm-yyyy

Na googlen kom ik wel wat functions tegen in mysql maar die zijn allemaal voor Amerikaanse datumformaten, 2006-04-12 zoiets.

Kan iemand mij hierbij helpen?

Acties:
  • 0 Henk 'm!

  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode


Acties:
  • 0 Henk 'm!

  • Maaark
  • Registratie: Juli 2008
  • Laatst online: 20:26
Die site kwam ik ook tegen toen ik aan het googlen was, maar ik zie hier niet hoe ik dit in een between kan verwerken?

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 12-09 10:03

Creepy

Tactical Espionage Splatterer

(jarig!)
Je zult toch echt een conversie moeten als je platte strings hebt opgeslagen in de database. Al het andere kost erg veel moeite. Een stukje PHP code die een NL datum parsed en dat vervolgens als een echte Date in MySQL insert is een kleine moeite. Je kan daarna gelijk gebruik maken van zaken als >, < en BETWEEN. En niet te vergeten: een fatsoenlijke INDEX maken indien nodig. Aan die dateformat heb je in elk geval niks nee.

[ Voor 6% gewijzigd door Creepy op 13-01-2011 21:47 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Maaark
  • Registratie: Juli 2008
  • Laatst online: 20:26
Ok, dus als ik het goed begrijp moet het volgende gebeuren:

PHP scriptje maken die de datums uit de database haalt en die via explode uitelkaar pielt en in de juiste volgorde zetten en daar een timestamp van maken en in de database storen en dat ding gebruiken bij de select, klopt dat?

Acties:
  • 0 Henk 'm!

  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

code:
1
SELECT * FROM tabel WHERE str_to_date(test, "%d-%m-%Y") > '2010-01-13'

[ Voor 12% gewijzigd door Thomasje op 13-01-2011 21:56 ]


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 12-09 18:33
Maaark schreef op donderdag 13 januari 2011 @ 21:51:
Ok, dus als ik het goed begrijp moet het volgende gebeuren:

PHP scriptje maken die de datums uit de database haalt en die via explode uitelkaar pielt en in de juiste volgorde zetten en daar een timestamp van maken en in de database storen en dat ding gebruiken bij de select, klopt dat?
Explode hoeft niet eens, volgens mij kun je al met strtotime() uit te voeten. Die maakt er een UNIX timestamp van die je met mktime() naar het gewenste formaat om kunt toveren. Verder klopt het ja.
Thomasje schreef op donderdag 13 januari 2011 @ 21:53:
code:
1
SELECT * FROM tabel WHERE date_format(str_to_date(test, "%d-%m-%Y"), "%Y-%m-%d") > '2010-01-13'
Dan moet je bij elke query je string omzetten naar een datum? Best een performance killer ;)

We zitten btw in 2011 :9

[ Voor 22% gewijzigd door Avalaxy op 13-01-2011 21:57 ]


Acties:
  • 0 Henk 'm!

  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Avalaxy schreef op donderdag 13 januari 2011 @ 21:55:
[...]

Dan moet je bij elke query je string omzetten naar een datum? Best een performance killer ;)

We zitten btw in 2011 :9
In 2011 hadden we er gewoon een date veld van gemaakt in de database! Ik geef alleen een oplossing voor zijn probleem. Ik had hem nog wel een klein beetje aangepast.

[ Voor 33% gewijzigd door Thomasje op 13-01-2011 22:00 ]


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 12-09 18:33
Thomasje schreef op donderdag 13 januari 2011 @ 21:59:
[...]


In 2011 hadden we er gewoon een date veld van gemaakt in de database!
2010 ook al, dus die vlieger gaat niet op ;)

Acties:
  • 0 Henk 'm!

  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Avalaxy schreef op donderdag 13 januari 2011 @ 22:00:
[...]


2010 ook al, dus die vlieger gaat niet op ;)
Zo kunnen we natuurlijk de jaren gaan aftellen. Ik altijd 1 jaar extra eraf! Lekker puh!

De topicstarter kan op deze manier wel een kolom met date aanmaken en dan een update query uitvoeren.

code:
1
UPDATE `tabel` SET `DATUMVELD`= str_to_date(STRING_DATUM, "%d-%m-%Y");

[ Voor 16% gewijzigd door Thomasje op 13-01-2011 22:06 ]


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 12-09 18:33
Thomasje schreef op donderdag 13 januari 2011 @ 22:02:
[...]


Zo kunnen we natuurlijk de jaren gaan aftellen. Ik altijd 1 jaar extra eraf! Lekker puh!

De topicstarter kan op deze manier wel een kolom met date aanmaken en dan een update query uitvoeren.

code:
1
UPDATE `tabel` SET `DATUMVELD`= str_to_date(STRING_DATUM, "%d-%m-%Y");
Maar dan pas je toch alleen de waarde aan en niet het daadwerkelijke datatype? Dan moet je alsnog gaan klooien als je een andere presentatie van de data wilt :)

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 12-09 17:37

TeeDee

CQB 241

Avalaxy schreef op donderdag 13 januari 2011 @ 22:08:
[...]
Maar dan pas je toch alleen de waarde aan en niet het daadwerkelijke datatype? Dan moet je alsnog gaan klooien als je een andere presentatie van de data wilt :)
Dus kan je maar 2 dingen doen:
1. Je database aanpassen.
2. Een query gebruiken die de hele meuk omzet

Als je (dus TS) de mogelijkheid hebt om je database aan te passen zodat het gewenste veld een DateTime/Date (in ieder geval een correct DataType) wordt, dan kan je de correcte methodes (beter nog; parameters) gebruiken om je gegevens op te halen.

In het geval van het 2e punt: kaart het aan bij de beheerder/admin van de DB en neem je verlies. Converteren die handel @ runtime.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Precies, mijn query zou je dan kunnen gebruiken. Vraag me alleen nog af wat je aan het doen bent?
Pagina: 1