add sql date functions
This commit is contained in:
@@ -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
|
||||||
|
|||||||
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
|
||||||
81
Zweites Jahr/sql/datum.sql
Normal file
81
Zweites Jahr/sql/datum.sql
Normal 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 */;
|
||||||
Reference in New Issue
Block a user