Wie kann ich im SQL Zahlen ausrechnen lassen?

5 Antworten

SQL ist eine relationale Datenbank. Bestimmt kannst du per Script bei einem Select Befehl auch Rechenbefehle verwenden aber das wäre hier vermutlich zu umständlich.

Jahrgang ist natürlich zu ungenau da du den Monat und Tag mit einbeziehen musst um das Alter zu errechnen.

Dr34mle1  19.09.2018, 16:30

SQL ist keine Datenbank, SQL ist eine Datenbanksprache, wie der name schon sagt.

1

Ich weiß jetzt nicht, wie die Datumsfunktion in sqlite heißt, aber z.B. bei MS SQL-Server würde es so gehen:

SELECT Name, Vorname, YEAR(GETDATE()) - Geburtsjahr AS Alter
FROM Personen

Also einfach das aktuelle Jahr minus das Geburtsjahr rechnen lassen.

Aus einem Jahrgang kannst Du das genaue Alter nicht errechnen. Das kannst Du nur, wenn Du das Geburtsdatum kennst.

Ansonsten läuft es darauf hinaus, die aktuelle Jahreszahl per YEAR zu ermitteln und davon die Jahreszahl des Jahrgangs abzuzuiehen. Diesen Wert kannst Du dann zurückgeben.

Haribundi 
Fragesteller
 17.09.2018, 11:12

Ich habe eine Übungstabelle, wo nur der Jahrgang steht...

0
ohwehohach  17.09.2018, 11:12
@Haribundi

Das mag sein. Dennoch kannst Du nur mit dem Jahrgang nicht das genaue Alter einer Person berechnen, sondern nur, wie alt die Person mit Sicherheit am 31.12. diesen Jahres ist.

1

Das dürfe doch kein problem darstellen wenn du den SQL Syntax eingeben kannst. Zum beistpel Now()-Datum frag mich nicht wie das in Sqliteman geht.

Woher ich das weiß:eigene Erfahrung

Jetzt habe ich herausgefunden, dass wenn ich diese Syntax angebe: SELECT Nachname, Vorname, Jahrgang - 2018 AS "Alter" FROM table;

Kommen zwar Nachname, Vorname und Alter aber das alter wird dann in -20 angegeben. Ist es nun möglich das "-" vor der Zahl entfernen zu lassen?

ohwehohach  17.09.2018, 11:13

Ja, indem man es halt richtig herum macht....

"2018 - Jahrgang" anstatt "Jahrgang - 2018".

Und was machst Du dann 2019? Willst Du dann jedes Jahr den Code anpassen?

Schreib mal hin "YEAR(GETDATE()) - Jahrgang" und schau, was rauskommt.

2
Haribundi 
Fragesteller
 17.09.2018, 11:29
@ohwehohach

Abfrage Fehler; no such function: GETDATE Unable to execute statement

SELECT YEAR(GETDATE()) - Jahrgang AS "Alter" FROM schueler;

0
ohwehohach  17.09.2018, 11:31
@Haribundi

Ach SQLite... Dann muss es heißen

SELECT YEAR(date('now')) - Jahrgang
0