add sql date functions
This commit is contained in:
128
Zweites Jahr/sql/AB4_DateTime_mit_Aufgaben.md
Normal file
128
Zweites Jahr/sql/AB4_DateTime_mit_Aufgaben.md
Normal file
@@ -0,0 +1,128 @@
|
||||
|
||||
|
||||
# Übung (Basis: Tabelle Flugdaten)
|
||||
-> `datum.sql`
|
||||
|
||||
## A1
|
||||
|
||||
### Aufgabenstellung
|
||||
|
||||
Gib alle Flüge aus, die im Oktober 2025 starten.
|
||||
|
||||
### Lösung
|
||||
```sql
|
||||
|
||||
SELECT *
|
||||
FROM fluege
|
||||
WHERE MONTH(abflug) = 10 AND YEAR(abflug) = 2025
|
||||
```
|
||||
|
||||
## A2
|
||||
|
||||
### Aufgabenstellung
|
||||
|
||||
Zeige das Datum und die Uhrzeit des Abflugs und der Ankunft getrennt an.
|
||||
|
||||
### Lösung
|
||||
```sql
|
||||
|
||||
SELECT
|
||||
-- Abflug
|
||||
DATE(abflug), TIME(abflug),
|
||||
-- Ankunft
|
||||
DATE(ankunft), TIME(ankunft)
|
||||
|
||||
FROM fluege
|
||||
```
|
||||
|
||||
## A3
|
||||
|
||||
### Aufgabenstellung
|
||||
|
||||
Berechne die Flugdauer in hh:mm:ss für jeden Flug. (→TIMEDIFF)
|
||||
|
||||
### Lösung
|
||||
|
||||
```sql
|
||||
SELECT SEC_TO_TIME(TIMESTAMPDIFF(SECOND, abflug, ankunft)) AS Flugzeit
|
||||
FROM fluege
|
||||
```
|
||||
|
||||
## A4
|
||||
|
||||
### Aufgabenstellung
|
||||
|
||||
Berechne die Flugdauer in Minuten für jeden Flug. (→TIMEDIFF)
|
||||
|
||||
### Lösung
|
||||
|
||||
```sql
|
||||
SELECT TIMESTAMPDIFF(MINUTE, abflug, ankunft) AS Flugzeit
|
||||
FROM fluege
|
||||
```
|
||||
|
||||
## A5
|
||||
|
||||
### Aufgabenstellung
|
||||
|
||||
Zeige alle Flüge, die länger als 3 Stunden dauern
|
||||
|
||||
### Lösung
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
FROM fluege
|
||||
WHERE TIMESTAMPDIFF(HOUR, abflug, ankunft) > 3
|
||||
```
|
||||
|
||||
## A6
|
||||
|
||||
### Aufgabenstellung
|
||||
|
||||
Formatiere das jeweilige Abflugdatum in folgendem Format: **07.10.2025 - 14:30 Uhr**
|
||||
|
||||
### Lösung
|
||||
|
||||
```sql
|
||||
SELECT DATE_FORMAT(abflug, '%d.%m.%Y - %H:%i Uhr') AS ablfug_formatiert
|
||||
FROM fluege
|
||||
```
|
||||
|
||||
## A7
|
||||
|
||||
### Aufgabenstellung
|
||||
|
||||
Ermittle die Anzahl der Flüge pro Monat
|
||||
|
||||
### Lösung
|
||||
|
||||
```sql
|
||||
SELECT MONTHNAME(abflug) AS Monatsname, COUNT(*) AS Anzahl_Fluege
|
||||
FROM fluege
|
||||
GROUP BY MONTH(abflug)
|
||||
ORDER BY MONTH(abflug);
|
||||
```
|
||||
### Erklärung:
|
||||
mit `COUNT(*)` werden die Ergebnisse gezählt und nach dem Monat mit `GROUB BY MONTH(abflug)` gruppiert und mit `ORDER BY MONTH(abflug)` nach dem Monat sortiert
|
||||
|
||||
## A8
|
||||
|
||||
### Aufgabenstellung
|
||||
|
||||
Zeige alle Flüge, die am Wochenende abfliegen X
|
||||
|
||||
### Lösung
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
FROM fluege
|
||||
WHERE DAYOFWEEK(abflug) IN (7, 1);
|
||||
```
|
||||
|
||||
### Erklärung
|
||||
Es werden nur die Einträge angezeigt wo der Tag des Abflugs `7` oder `1` ist.
|
||||
|
||||
> `7` -> Samstag
|
||||
> `1` -> Sonntag
|
||||
>
|
||||
> Da die Woche in USA am Sonntag startet und nicht am Montag
|
||||
Reference in New Issue
Block a user