Terugrekenen naar onbekende datum

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johanna Janssen

Johanna Janssen

10/04/2014 16:41:51
Quote Anchor link
In mijn database zijn de geboortedata van de kinderen bekend. Ik wil deze terugrekenen naar de begindatum van de zwangerschap (dus: geboortedatum kind - 273 dagen).
Ik heb al dingen geprobeerd met timestampdiff, maar het probleem is dat ik maar 1 bekende datum heb, de geboortedatum van het kind.
Ook lukte het niet met dateadd en een negatief getal, want daarvoor heb je volgens mij ook twee data nodig.
Ik zou de nieuwe data (geboortedatum kind - 273 dagen) in een nieuwe tabel willen zetten.
 
PHP hulp

PHP hulp

17/11/2024 02:59:40
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

10/04/2014 16:49:37
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT geboortedatum - INTERVAL 273 DAY as datum_geraakt FROM .....

Vooropgesteld dat geboortedatum datatype DATE of DATETIME heeft.
 
Johanna Janssen

Johanna Janssen

10/04/2014 16:56:42
Quote Anchor link
Het is gelukt, bedankt!
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

10/04/2014 17:08:20
Quote Anchor link
Dit was overigens ook mogelijk geweest:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT DATE_ADD(geboortedatum,INTERVAL -273 DAY) as datum_geraakt FROM .....
SELECT DATE_SUB(geboortedatum,INTERVAL 273 DAY) as datum_geraakt FROM .....

Eerdere is een ingekorte versie.
Gewijzigd op 10/04/2014 17:30:39 door Ger van Steenderen
 
Ivo P

Ivo P

10/04/2014 21:25:51
Quote Anchor link
Hoe kom je eigenlijk aan 273 dagen (=39 weken).

Is 40 weken niet een gebruikelijkere termijn?
Of anders 38 weken, aangezien je de eerste 2 weken bij de berekening cadeau krijgt?
 
Johanna Janssen

Johanna Janssen

11/04/2014 15:49:55
Quote Anchor link
De duur van een zwangerschap is discutabel en kan erg verschillen.
9 maanden * 30,5 dag (gemiddelde duur van een maand) = 274,5 dsagen
En dagen 274,5/ 7 = 39,2 weken

Maar ik ga ook een sensitiviteitsanalyse uitvoeren om te kijken of de resultaten verschillen bij een verschillende zwangerschapsduur (bijv. 37, 39, 41 weken)
 
Ivo P

Ivo P

11/04/2014 16:19:25
Quote Anchor link
37 - 42 weken is 'a term'.

Volgens mij wordt doorgaans in weken gerekend en niet op basis van maanden. 9 maanden kan variëren in dagen, als je net wat veel maanden van 31 dagen treft of juist februari erbij hebt. Weken hebben altijd 7 dagen.

Ik weet niet wat voor data je in handen hebt, maar als je er vanuit gaat dat de geboortes op een normaal moment plaats vonden dan zal het meerendeel inderdaad tussen 37 en 42 liggen.

Gaat het om een bijzondere groep, dan kunnen ze zomaar vaak te vroeg zijn geweest. Het is maar net wat je nu eigenlijk wilt gaan bepalen.
 
Johanna Janssen

Johanna Janssen

28/04/2014 16:19:16
Quote Anchor link
Hallo,

Ik loop weer tegen een probleem aan. Ik heb twee kolommen ('datum' en 'dagen') die ik bij elkaar wil optellen.
De ene is gewoon een datum dd-mm-yyyy, de andere is weergegeven in het aantal dagen.

Het is waarschijnlijk maar eenvoudig, maar het lukt me niet om het aantal dagen bij de datum uit de andere kolom op te tellen.

Alvast bedankt

Toevoeging op 28/04/2014 16:31:25:

Wat ik heb geprobeerd:

alter table tabel
add nieuwe_kolom varchar(255) datum + ndagen day
 
Ivo P

Ivo P

28/04/2014 16:51:00
Quote Anchor link
dd-mm-yyyy is geen datum.

een datum sla je in een mysql database op in een kolom van het type DATE (of DATETIME)

De volgorde daarvan is "yyyy-mm-dd"

Heb je dat, dan is het daarna eenvoudig rekenen:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT datumkolom + INTERVAL 5 DAY



Overigens is het onnodig om als je de eerste datum hebt en de periode om er bijop te tellen, om dan dat resultaat ook in een kolom te stoppen.

Zoiets als
"bedrag = 10"
"korting = 1"
"te betalen = 9"

Wat nu als om een of andere reden de korting naar 2 wordt aangepast? Dan MOET je ook de 3e kolom aanpassen, anders heb je strijdige info.
Dan kun je net zo eenvoudig steeds die berekening blijven doen en ben je van dat risico af.
 
Johanna Janssen

Johanna Janssen

28/04/2014 17:01:27
Quote Anchor link
Bedankt voor de uitleg, ik heb de datum nu inderdaad in 'yyyy-mm-dd'.
Maar de dagen die ik steeds bij de verschillende datums wil optellen zijn steeds verschillend.
moet het dan met INTERVAL 'kolomnaam dagen' DAY?

Toevoeging op 28/04/2014 17:01:54:

Dan krijg ik gewoon dezelfde datum als in de kolom datum
 
Ivo P

Ivo P

28/04/2014 17:04:03
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT datumkolom + INTERVAL dagenkolom DAY


Mits je mysql-versie niet te gek oud is.
(herinner me dat dat ooit niet met een kolomnaam bij INTERVAL kon).

(kies trouwens niet alleen voor de volgorde yyyy-mm-dd, maar ook voor het juiste kolomtype, en niet een VARCHAR.
Dat maakt dat mysql ook kan rekenen zonder steeds te moeten converteren.
 
Johanna Janssen

Johanna Janssen

28/04/2014 17:08:39
Quote Anchor link
Bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.