Oprettet ons. d. 01. september 2004 kl. 22:57:08

supermand69
supermand69 (11.223 point. Point ude: 85)

beregn alder i query

hvordan kan man beregne alder i sin query ud fra et dato felt?

eks.
0000-00-00

Skrevet ons. d. 01. september 2004 kl. 23:00:36| #1

supermand69
supermand69 (11.223 point)
kan det ikke både lade sig gøre at lave den "beregning" i sin where clause og i select??

eks.
SELECT (beregn alder) AS age FROM ...
og
... WHERE (beregn alder)>23

Skrevet ons. d. 01. september 2004 kl. 23:02:05| #2

jpvj
jpvj (93.148 point)
givet dit dato felt med fødselsdatoen hedder birth:

SELECT name, birth, CURDATE(), (YEAR(CURDATE())-YEAR(birth)) - (RIGHT(CURDATE(),5)<RIGHT(birth,5)) AS age
FROM table;

Skrevet ons. d. 01. september 2004 kl. 23:05:26| #3

supermand69
supermand69 (11.223 point)
kan det ikke laves mere simpelt?

Skrevet ons. d. 01. september 2004 kl. 23:08:01| #4

supermand69
supermand69 (11.223 point)
har selv fundet noget her... men kan det ikke gøres endnu mere simpelt??

FLOOR((TO_DAYS(NOW())-TO_DAYS(birth))/365.25) AS age

Skrevet tor. d. 02. september 2004 kl. 00:11:43| #5

dsj
dsj (24.881 point)
Joda:

SELECT YEAR(SUBTIME(CURDATE(), birth)) AS age FROM...

Bemærk dog, at SUBTIME-funktionen kun virker fra MySQL version 4.1.1

Skrevet tor. d. 02. september 2004 kl. 16:24:56| #6

supermand69
supermand69 (11.223 point)
er der ikke andre muligheder? jeg bruger kun 4.0

Skrevet tor. d. 02. september 2004 kl. 17:04:01| #7

dsj
dsj (24.881 point)
Ikke på MySQL...

Skrevet lør. d. 04. september 2004 kl. 10:20:51| #8

supermand69
supermand69 (11.223 point)
hmm.. synes ikke rigtig jeg kan få det til at virke?

SELECT name, YEAR(SUBTIME(CURDATE(), birth)) AS age, time FROM $DB.user

den udskriver godt nok mine rækker, men age er ikke noget? :(

Skrevet lør. d. 04. september 2004 kl. 13:24:04| #9

dsj
dsj (24.881 point)
Prøv og se hvad SUBTIME(CURDATE(), birth)) giver, altså uden YEAR-funktionen...

Skrevet søn. d. 08. maj 2005 kl. 20:39:52| #10

tjensen
tjensen (14.679 point)
Til andre der leger med det, så virker det her også fint:

SELECT Year(NOW())-YEAR(birth) AS alder FROM

Skrevet søn. d. 29. juli 2007 kl. 11:45:45| #11

horsmark
horsmark (32.593 point)
www.horsmark.com
Til alle der kører mysql 5 eller højere

SELECT
  TIMESTAMPDIFF(YEAR, NOW(), mit_datetime_datofelt) * -1 AS iAge
FROM
min_tabel

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Kopier alt fra een column til en anden med streng foran

Oprettet den 25. maj 2012 kl. 04.55
dmg giver 30 point for svar | Giv et svar »

Unique varchar

Oprettet den 25. maj 2012 kl. 04.34
dmg giver 30 point for svar | Giv et svar »

hvem kan flytte min webside fra MySQL 3 database til en...

Oprettet den 24. maj 2012 kl. 11.18
runebase giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger