Terugrekenen naar onbekende datum
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.
Vooropgesteld dat geboortedatum datatype DATE of DATETIME heeft.
Het is gelukt, bedankt!
Code (php)
1
2
2
SELECT DATE_ADD(geboortedatum,INTERVAL -273 DAY) as datum_geraakt FROM .....
SELECT DATE_SUB(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
Is 40 weken niet een gebruikelijkere termijn?
Of anders 38 weken, aangezien je de eerste 2 weken bij de berekening cadeau krijgt?
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)
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.
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
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:
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.
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
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.
Bedankt!