2
0

add sql date functions

This commit is contained in:
cwikladaniel
2026-02-06 12:29:20 +01:00
parent 21471e419e
commit bf01530dda
3 changed files with 212 additions and 1 deletions

View File

@@ -7,11 +7,13 @@ Wichtige Informationen
- Wir eventuell nie aktuell sein. - Wir eventuell nie aktuell sein.
- Stundenplan - [Link](https://wvss-mannheim.webuntis.com/WebUntis/?school=wvss-mannheim#/basic/timetablePublic/class?entityId=2583) - Stundenplan - [Link](https://wvss-mannheim.webuntis.com/WebUntis/?school=wvss-mannheim#/basic/timetablePublic/class?entityId=2583)
## 06-02-26 - SQL
- DATE sachen in SQL
## 05-02-26 - PHP (JSON, SQL) ## 05-02-26 - PHP (JSON, SQL)
- Aus PHP JSON Datei erstellen - Aus PHP JSON Datei erstellen
- In PHP SQL abfrage in JSON datei umwandeln - In PHP SQL abfrage in JSON datei umwandeln
## 04-02-26 - PHP (Kryptographie) ## 04-02-26 - PHP (Kryptographie)
- Caeser chiffere kontrolliert - Caeser chiffere kontrolliert
- Vigenere chieffre gemacht - Vigenere chieffre gemacht

View 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

View File

@@ -0,0 +1,81 @@
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Erstellungszeit: 16. Okt 2025 um 10:31
-- Server-Version: 10.4.32-MariaDB
-- PHP-Version: 8.2.12
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Datenbank: `datum`
--
CREATE DATABASE IF NOT EXISTS `datum` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `datum`;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `fluege`
--
CREATE TABLE `fluege` (
`flug_id` int(11) NOT NULL,
`flugnummer` varchar(20) NOT NULL,
`abflug_ort` varchar(100) DEFAULT NULL,
`ankunft_ort` varchar(100) DEFAULT NULL,
`abflug` datetime NOT NULL,
`ankunft` datetime NOT NULL,
`erstellt_am` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Daten für Tabelle `fluege`
--
INSERT INTO `fluege` (`flug_id`, `flugnummer`, `abflug_ort`, `ankunft_ort`, `abflug`, `ankunft`, `erstellt_am`) VALUES
(1, 'LH100', 'Frankfurt', 'Berlin', '2025-10-08 08:00:00', '2025-10-08 09:10:00', '2025-10-16 08:25:39'),
(2, 'AF203', 'Paris', 'Rom', '2025-11-05 11:30:00', '2025-11-05 13:25:00', '2025-10-16 08:25:39'),
(3, 'BA304', 'London', 'Madrid', '2025-12-10 07:45:00', '2025-12-10 10:00:00', '2025-10-16 08:25:39'),
(4, 'DL405', 'New York', 'Los Angeles', '2026-01-15 15:00:00', '2026-01-15 18:30:00', '2025-10-16 08:25:39'),
(5, 'SQ501', 'Singapur', 'Sydney', '2026-02-03 21:00:00', '2026-02-04 07:00:00', '2025-10-16 08:25:39'),
(6, 'EK606', 'Dubai', 'Bangkok', '2026-03-12 02:15:00', '2026-03-12 11:30:00', '2025-10-16 08:25:39'),
(7, 'LH707', 'München', 'Wien', '2025-10-20 06:40:00', '2025-10-20 07:45:00', '2025-10-16 08:25:39'),
(8, 'TK808', 'Istanbul', 'Amsterdam', '2025-11-28 13:20:00', '2025-11-28 15:50:00', '2025-10-16 08:25:39'),
(9, 'UA909', 'Chicago', 'Toronto', '2026-01-18 17:10:00', '2026-01-18 19:00:00', '2025-10-16 08:25:39'),
(10, 'QF110', 'Melbourne', 'Auckland', '2026-03-25 09:00:00', '2026-03-25 14:10:00', '2025-10-16 08:25:39');
--
-- Indizes der exportierten Tabellen
--
--
-- Indizes für die Tabelle `fluege`
--
ALTER TABLE `fluege`
ADD PRIMARY KEY (`flug_id`);
--
-- AUTO_INCREMENT für exportierte Tabellen
--
--
-- AUTO_INCREMENT für Tabelle `fluege`
--
ALTER TABLE `fluege`
MODIFY `flug_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;