{"id":15974,"date":"2024-07-25T12:10:56","date_gmt":"2024-07-25T08:40:56","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15974"},"modified":"2024-07-25T12:10:56","modified_gmt":"2024-07-25T08:40:56","slug":"how-to-work-with-dates-and-times-in-sql","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","title":{"rendered":"Wie man in SQL mit Datums- und Zeitangaben arbeitet"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">Einf\u00fchrung<\/h2>\n<p>Bei der Arbeit mit relationalen Datenbanken und der strukturierten Abfragesprache (SQL) kann es vorkommen, dass Sie mit Werten arbeiten m\u00fcssen, die bestimmte Datums- oder Zeitangaben repr\u00e4sentieren. Beispielsweise m\u00fcssen Sie m\u00f6glicherweise die Gesamtstundenzahl einer bestimmten Aktivit\u00e4t berechnen oder Datums- oder Zeitwerte mithilfe mathematischer Operatoren und Funktionen aggregieren, um deren Summe oder Durchschnitt zu ermitteln.<\/p>\n<p>In diesem Tutorial lernen Sie, wie Sie Datum und Uhrzeit in SQL verwenden. Zun\u00e4chst f\u00fchren Sie Berechnungen durch und nutzen verschiedene Funktionen mit Datum und Uhrzeit mithilfe der SELECT-Anweisung. Anschlie\u00dfend \u00fcben Sie anhand von Beispieldaten und lernen, wie Sie die CAST-Funktion einsetzen, um die Ausgabe lesbarer zu gestalten.<\/p>\n<h5 id=\"%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\">Voraussetzungen<\/h5>\n<p>Um dieses Tutorial abzuschlie\u00dfen, ben\u00f6tigen Sie Folgendes:<\/p>\n<ul>\n<li>Ein Server mit Ubuntu 20.04, auf dem ein Benutzer ohne Root-Rechte, aber mit sudo-Administratorrechten und aktivierter Firewall l\u00e4uft.<\/li>\n<li>MySQL ist auf dem Server installiert und gesichert.<\/li>\n<\/ul>\n<p><span style=\"color: #ff0000;\">Hinweis: Bitte beachten Sie, dass viele relationale Datenbankmanagementsysteme (RDBMS) ihre eigenen SQL-Implementierungen verwenden. Obwohl die in diesem Tutorial genannten Befehle auf den meisten RDBMS funktionieren, k\u00f6nnen Syntax und Ausgabe auf anderen Systemen als MySQL abweichen.<\/span><\/p>\n<p>Um in diesem Tutorial die Verwendung von Datum und Uhrzeit zu \u00fcben, ben\u00f6tigen Sie eine Datenbank und eine Tabelle mit Beispieldaten. Falls Sie noch keine Datenbank oder Tabelle zum Einf\u00fcgen haben, lesen Sie bitte den Abschnitt \u201eVerbindung zu MySQL herstellen und eine Beispieldatenbank einrichten\u201c, um zu erfahren, wie Sie eine Datenbank und eine Tabelle erstellen. In diesem Tutorial wird im Folgenden auf diese Beispieldatenbank und -tabelle Bezug genommen.<\/p>\n<h2 id=\"%d8%a7%d8%aa%d8%b5%d8%a7%d9%84-%d8%a8%d9%87-mysql-%d9%88-%d8%b1%d8%a7%d9%87-%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%db%8c%da%a9-%d9%be%d8%a7%db%8c%da%af%d8%a7%d9%87-%d8%af%d8%a7%d8%af%d9%87-%d9%86%d9%85\">Verbindung zu MySQL herstellen und eine Beispieldatenbank einrichten<\/h2>\n<p>Wenn Ihre SQL-Datenbank auf einem Remote-Server l\u00e4uft, stellen Sie eine SSH-Verbindung von Ihrem lokalen Rechner zu Ihrem Server her:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>ssh sammy@your_server_ip\r\n<\/code><\/pre>\n<\/div>\n<p>\u00d6ffnen Sie anschlie\u00dfend die MySQL-Eingabeaufforderung und ersetzen Sie \u201eSami\u201c durch Ihre MySQL-Kontoinformationen:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>mysql -u sammy -p\r\n<\/code><\/pre>\n<\/div>\n<p>Erstellen Sie eine Datenbank namens datetimeDB:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE DATABASE datetimeDB;\r\n<\/code><\/pre>\n<\/div>\n<p>Wenn die Datenbank erfolgreich erstellt wurde, erhalten Sie folgende Ausgabe:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 1 row affected (0.01 sec)<\/code><\/pre>\n<\/div>\n<p>Um die datetimeDB-Datenbank auszuw\u00e4hlen, f\u00fchren Sie die folgende USE-Anweisung aus:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>USE datetimeDB;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nDatabase changed<\/code><\/pre>\n<\/div>\n<p>Nachdem Sie die Datenbank ausgew\u00e4hlt haben, erstellen Sie darin eine Tabelle. In diesem Tutorial erstellen wir eine Tabelle, die die Ergebnisse zweier L\u00e4ufer f\u00fcr verschiedene Rennen speichert, an denen sie im Laufe eines Jahres teilgenommen haben. Diese Tabelle hat die folgenden sieben Spalten:<\/p>\n<ul>\n<li>race_id: Stellt Werte vom Datentyp int dar und fungiert als Prim\u00e4rschl\u00fcssel der Tabelle, was bedeutet, dass jeder Wert in dieser Spalte als eindeutiger Bezeichner f\u00fcr die entsprechende Zeile dient.<\/li>\n<li>runner_name: Verwendet den Datentyp varchar mit maximal 30 Zeichen f\u00fcr die Namen der beiden L\u00e4ufer Bolt und Felix.<\/li>\n<li>race_name: Enth\u00e4lt Renntypen mit varchar-Datentyp und bis zu 20 Zeichen.<\/li>\n<li>start_day: Verwendet den Datentyp DATE, um das Datum eines bestimmten Spiels anhand von Jahr, Monat und Tag zu erfassen. Dieser Datentyp hat folgende Parameter: vier Ziffern f\u00fcr das Jahr und maximal zwei Ziffern f\u00fcr Monat und Tag (JJJJ-MM-TT).<\/li>\n<li>start_time: Gibt die Startzeit des Spiels im 24-Stunden-Format (Stunden, Minuten, Sekunden, HH:MM:SS) an.<\/li>\n<li>total_miles: Zeigt die Gesamtkilometerzahl f\u00fcr jedes Rennen im Dezimalformat an, da viele der angegebenen Kilometer pro Rennen keine ganzen Zahlen sind. In diesem Fall gibt das Dezimalformat eine Genauigkeit von drei Stellen und eine Skalierung von eins an. Das bedeutet, dass jeder Wert in dieser Spalte drei Stellen haben kann, wobei eine dieser Stellen rechts vom Dezimaltrennzeichen steht.<\/li>\n<li>end_time: Verwendet den Datentyp TIMESTAMP, um die Zeit der L\u00e4ufer am Ende des Rennens zu erfassen. Dieser Datentyp kombiniert Datum und Uhrzeit zu einer Zeichenkette, und sein Format ist eine Kombination aus DATE und TIME: (YYYY-MM-DD HH:MM:SS).<\/li>\n<\/ul>\n<p>Erstellen Sie die Tabelle mit dem Befehl CREATE TABLE:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>CREATE TABLE race_results (\r\nrace_id int, \r\nrunner_name varchar(30),\r\nrace_name varchar(20), \r\nstart_day DATE,\r\nstart_time TIME, \r\ntotal_miles decimal(3, 1),\r\nend_time TIMESTAMP,\r\nPRIMARY KEY (race_id)\r\n); <\/code><\/pre>\n<\/div>\n<p>Geben Sie anschlie\u00dfend einige Beispieldaten in die leere Tabelle ein:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>INSERT INTO race_results\r\n(race_id, runner_name, race_name, start_day, start_time, total_miles, end_time)\r\nVALUES\r\n(1, 'bolt', '1600_meters', '2022-09-18', '7:00:00', 1.0, '2022-09-18 7:06:30'),\r\n(2, 'bolt', '5K', '2022-10-19', '11:00:00', 3.1, '2022-10-19 11:22:31'),\r\n(3, 'bolt', '10K', '2022-11-20', '10:00:00', 6.2, '2022-11-20 10:38:05'),\r\n(4, 'bolt', 'half_marathon', '2022-12-21', '6:00:00', 13.1, '2022-12-21 07:39:04'),\r\n(5, 'bolt', 'full_marathon', '2023-01-22', '8:00:00', 26.2, '2023-01-22 11:23:10'),\r\n(6, 'felix', '1600_meters', '2022-09-18', '7:00:00', 1.0, '2022-09-18 7:07:15'),\r\n(7, 'felix', '5K', '2022-10-19', '11:00:00', 3.1, '2022-10-19 11:30:50'),\r\n(8, 'felix', '10K', '2022-11-20', '10:00:00', 6.2, '2022-11-20 11:10:17'),\r\n(9, 'felix', 'half_marathon', '2022-12-21', '6:00:00', 13.1, '2022-12-21 08:11:57'),\r\n(10, 'felix', 'full_marathon', '2023-01-22', '8:00:00', 26.2, '2023-01-22 12:02:10');<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nQuery OK, 10 rows affected (0.00 sec)\r\nRecords: 10 Duplicates: 0 Warnings: 0<\/code><\/pre>\n<\/div>\n<p>Sobald Sie die Daten eingegeben haben, k\u00f6nnen Sie mit dem \u00dcben von Arithmetik und Funktionen mit Datums- und Zeitangaben in SQL beginnen.<\/p>\n<h2 id=\"%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d8%ad%d8%b3%d8%a7%d8%a8-%d8%a8%d8%a7-%d8%aa%d8%a7%d8%b1%db%8c%d8%ae-%d9%88-%d8%b2%d9%85%d8%a7%d9%86\">Verwendung des Kontos mit Datum und Uhrzeit<\/h2>\n<p>In SQL k\u00f6nnen Sie Datums- und Zeitwerte mithilfe mathematischer Ausdr\u00fccke bearbeiten. Sie ben\u00f6tigen lediglich einen mathematischen Operator und die zu berechnenden Werte.<\/p>\n<p>Angenommen, Sie m\u00f6chten ein Datum finden, das eine bestimmte Anzahl von Tagen nach einem anderen liegt. Die folgende Abfrage nimmt einen Datumswert (2022-10-05) und addiert 17 dazu, um einen Datumswert zur\u00fcckzugeben, der siebzehn Tage nach dem in der Abfrage angegebenen Datum liegt. Beachten Sie, dass in diesem Beispiel 2022-10-05 als DATE-Wert angegeben wird, um sicherzustellen, dass das DBMS ihn nicht als Zeichenkette oder einen anderen Datentyp interpretiert:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT DATE '2022-10-05' + 17 AS new_date;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+----------+\r\n| new_date |\r\n+----------+\r\n| 20221022 |\r\n+----------+\r\n1 row in set (0.01 sec)<\/code><\/pre>\n<\/div>\n<p>Wie diese Ausgabe zeigt, sind 17 Tage nach dem 5. Oktober 2022 der 22. Oktober 2022.<\/p>\n<p>Nehmen wir als weiteres Beispiel an, Sie m\u00f6chten die Gesamtstundenzahl zwischen zwei verschiedenen Zeitpunkten berechnen. Dies erreichen Sie, indem Sie die beiden Zeitpunkte voneinander subtrahieren. In der folgenden Abfrage ist 11:00 der erste Zeitpunkt und 3:00 der zweite. Hier m\u00fcssen Sie angeben, dass beide Werte vom Typ TIME sind, um die Differenz in Stunden zu erhalten:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT TIME '11:00' - TIME '3:00' AS time_diff;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-----------+\r\n| time_diff |\r\n+-----------+\r\n| 80000 |\r\n+-----------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Diese Ausgabe zeigt Ihnen, dass die Differenz zwischen 11:00 und 3:00 80.000 oder 8 Stunden betr\u00e4gt.<\/p>\n<p>\u00dcben Sie nun die Berechnungen mit Datums- und Zeitangaben anhand der Beispieldaten. Berechnen Sie f\u00fcr die erste Abfrage die Gesamtzeit, die die L\u00e4ufer f\u00fcr jedes Rennen ben\u00f6tigten, indem Sie die Endzeit von der Startzeit subtrahieren:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, race_name, end_time - start_time \r\nAS total_time \r\nFROM race_results;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+---------------+----------------+\r\n| runner_name | race_name | total_time |\r\n+-------------+---------------+----------------+\r\n| bolt | 1600_meters | 20220918000630 |\r\n| bolt | 5K | 20221019002231 |\r\n| bolt | 10K | 20221120003805 |\r\n| bolt | half_marathon | 20221221013904 |\r\n| bolt | full_marathon | 20230122032310 |\r\n| felix | 1600_meters | 20220918000715 |\r\n| felix | 5K | 20221019003050 |\r\n| felix | 10K | 20221120011017 |\r\n| felix | half_marathon | 20221221021157 |\r\n| felix | full_marathon | 20230122040210 |\r\n+-------------+---------------+----------------+\r\n10 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Sie werden feststellen, dass die Ausgabe in der Spalte \u201etotal_time\u201c recht lang und schwer lesbar ist. Im Folgenden zeigen wir Ihnen, wie Sie die CAST-Funktion verwenden, um diese Datenwerte so umzuwandeln, dass sie besser lesbar sind.<\/p>\n<p>Wenn Sie sich nur f\u00fcr die Leistung jedes L\u00e4ufers bei l\u00e4ngeren L\u00e4ufen wie Halb- und Marathonl\u00e4ufen interessieren, k\u00f6nnen Sie Ihre Daten abfragen, um diese Informationen zu erhalten. Subtrahieren Sie dazu die Endzeit von der Startzeit und beschr\u00e4nken Sie die Ergebnisse mithilfe einer WHERE-Klausel auf Daten, bei denen die Gesamtkilometerzahl gr\u00f6\u00dfer als 12 ist.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, race_name, end_time - start_time AS half_full_results\r\nFROM race_results \r\nWHERE total_miles &gt; 12;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+---------------+-------------------+\r\n| runner_name | race_name | half_full_results |\r\n+-------------+---------------+-------------------+\r\n| bolt | half_marathon | 20221221013904 |\r\n| bolt | full_marathon | 20230122032310 |\r\n| felix | half_marathon | 20221221021157 |\r\n| felix | full_marathon | 20230122040210 |\r\n+-------------+---------------+-------------------+\r\n4 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>In diesem Abschnitt haben Sie einige Datums- und Zeitberechnungen mit der SELECT-Anweisung und anhand von Beispieldaten durchgef\u00fchrt. Im n\u00e4chsten Abschnitt \u00fcben Sie Abfragen mit verschiedenen Datums- und Zeitfunktionen.<\/p>\n<h2 id=\"%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d8%aa%d9%88%d8%a7%d8%a8%d8%b9-%d8%aa%d8%a7%d8%b1%db%8c%d8%ae-%d9%88-%d8%b2%d9%85%d8%a7%d9%86-%d9%88-%d8%b9%d8%a8%d8%a7%d8%b1%d8%a7%d8%aa-%d8%a8\">Verwendung von Datums- und Zeitfunktionen und Bereichsausdr\u00fccken<\/h2>\n<p>Es gibt verschiedene Funktionen in SQL, mit denen sich Datums- und Zeitwerte ermitteln und bearbeiten lassen. SQL-Funktionen dienen typischerweise der Datenverarbeitung und -manipulation, wobei die verf\u00fcgbaren Funktionen von der jeweiligen SQL-Implementierung abh\u00e4ngen. Die meisten SQL-Implementierungen erm\u00f6glichen es jedoch, das aktuelle Datum und die aktuelle Uhrzeit durch Abfragen der Werte `current_date` und `current_time` zu ermitteln.<\/p>\n<p>Um beispielsweise das heutige Datum zu ermitteln, ist die Syntax kurz und besteht lediglich aus der SELECT-Anweisung und der Funktion current_date, etwa so:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+--------------+\r\n| current_date |\r\n+--------------+\r\n| 2022-02-15 |\r\n+--------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Mit der gleichen Syntax k\u00f6nnen Sie die aktuelle Zeit mit der Funktion current_time ermitteln:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_time;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+--------------+\r\n| current_time |\r\n+--------------+\r\n| 17:10:20 |\r\n+--------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Wenn Sie Datum und Uhrzeit in der Ausgabe abfragen m\u00f6chten, verwenden Sie die Funktion current_timestamp:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_timestamp;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+---------------------+\r\n| current_timestamp |\r\n+---------------------+\r\n| 2022-02-15 19:09:58 |\r\n+---------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Sie k\u00f6nnen Datums- und Zeitfunktionen wie diese in arithmetischen Funktionen \u00e4hnlich dem vorherigen Abschnitt verwenden. Angenommen, Sie m\u00f6chten wissen, welches Datum vor elf Tagen war. In diesem Fall k\u00f6nnen Sie dieselbe Syntax wie f\u00fcr die Abfrage der Funktion `current_date` verwenden und anschlie\u00dfend 11 davon subtrahieren, um das Datum vor elf Tagen zu ermitteln.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date - 11;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------------+\r\n| current_date - 11 |\r\n+-------------------+\r\n| 20220206 |\r\n+-------------------+\r\n1 row in set (0.01 sec)<\/code><\/pre>\n<\/div>\n<p>Wie diese Ausgabe zeigt, war 11 Tage vor dem aktuellen Datum (zum Zeitpunkt des Verfassens dieses Artikels) der 6. Februar 2022. Versuchen Sie nun dieselbe Operation, ersetzen Sie aber das aktuelle Datum durch die Funktion aktuelle Zeit:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_time - 11;\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------------+\r\n| current_time - 11 |\r\n+-------------------+\r\n| 233639 |\r\n+-------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Diese Ausgabe zeigt, dass beim Subtrahieren von 11 vom Wert von current_time 11 Sekunden abgezogen werden. Die zuvor mit der Funktion current_date durchgef\u00fchrte Operation interpretierte 11 als Tage, nicht als Sekunden. Diese Inkonsistenz in der Zahleninterpretation kann bei der Arbeit mit Datums- und Zeitfunktionen zu Verwirrung f\u00fchren. Anstatt Datums- und Zeitwerte durch Berechnungen wie diese zu manipulieren, erm\u00f6glichen viele Datenbankmanagementsysteme eine pr\u00e4zisere Angabe mithilfe von INTERVAL-Anweisungen.<\/p>\n<p>INTERVAL-Ausdr\u00fccke erm\u00f6glichen es Ihnen, ein Datum oder eine Uhrzeit vor oder nach einem bestimmten Zeitintervall ab einem Datums- oder Zeitausdruck anzugeben. Sie m\u00fcssen die folgende Form haben:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>INTERVAL value unit\r\n<\/code><\/pre>\n<\/div>\n<p>Um beispielsweise das Datum in f\u00fcnf Tagen zu ermitteln, k\u00f6nnen Sie die folgende Abfrage ausf\u00fchren:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date + INTERVAL '5' DAY AS \"5_days_from_today\";\r\n<\/code><\/pre>\n<\/div>\n<p>Dieses Beispiel ermittelt den Wert von current_date und addiert anschlie\u00dfend den Intervallausdruck INTERVAL &#039;5&#039; DAY dazu. Dadurch wird das Datum in 5 Tagen zur\u00fcckgegeben:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------------+\r\n| 5_days_from_today |\r\n+-------------------+\r\n| 2022-03-06 |\r\n+-------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Dies ist wesentlich weniger mehrdeutig als die folgende Abfrage, die ein \u00e4hnliches, wenn auch nicht identisches Ergebnis liefert:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date + 5 AS \"5_days_from_today\";\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------------+\r\n| 5_days_from_today |\r\n+-------------------+\r\n| 20220306 |\r\n+-------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Beachten Sie, dass Sie Zeitintervalle von Datums- oder Zeitangaben subtrahieren k\u00f6nnen, um Werte vor einem bestimmten Datumswert zu ermitteln:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_date - INTERVAL '7' MONTH AS \"7_months_ago\";\r\n<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+--------------+\r\n| 7_months_ago |\r\n+--------------+\r\n| 2021-08-01 |\r\n+--------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Welche Einheiten in INTERVAL-Anweisungen verwendet werden k\u00f6nnen, h\u00e4ngt von der Wahl des DBMS ab, wobei die meisten Optionen wie STUNDE, MINUTE und SEKUNDE bieten:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT current_time + INTERVAL '6' HOUR AS \"6_hours_from_now\",\r\ncurrent_time - INTERVAL '5' MINUTE AS \"5_minutes_ago\",\r\ncurrent_time + INTERVAL '20' SECOND AS \"20_seconds_from_now\";<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+------------------+---------------+---------------------+\r\n| 6_hours_from_now | 5_minutes_ago | 20_seconds_from_now |\r\n+------------------+---------------+---------------------+\r\n| 07:51:43 | 01:46:43 | 01:52:03.000000 |\r\n+------------------+---------------+---------------------+\r\n1 row in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Nachdem Sie nun etwas \u00fcber Intervallausdr\u00fccke und einige Datums- und Zeitfunktionen gelernt haben, \u00fcben Sie weiter mit den Beispieldaten, die Sie im ersten Schritt eingegeben haben.<\/p>\n<h2 id=\"%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d8%aa%d9%88%d8%a7%d8%a8%d8%b9-cast-%d9%88-aggregate-%d8%a8%d8%a7-%d8%aa%d8%a7%d8%b1%db%8c%d8%ae-%d9%88-%d8%b2%d9%85%d8%a7%d9%86\">Verwendung von CAST- und Aggregatfunktionen mit Datums- und Zeitangaben<\/h2>\n<p>Erinnern Sie sich an das dritte Beispiel im Abschnitt \u201eArithmetische Operationen mit Datum und Uhrzeit\u201c, als Sie die folgende Abfrage ausgef\u00fchrt haben, um die Endzeit von der Startzeit zu subtrahieren und so die Gesamtlaufzeit jedes L\u00e4ufers in jedem Rennen zu berechnen. Die Ausgabe f\u00fchrte jedoch zu einer Spalte mit einer sehr langen Ausgabe, die dem in der Tabelle festgelegten Datentyp TIMESTAMP folgte:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, race_name, end_time - start_time \r\nAS total_time \r\nFROM race_results;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+---------------+----------------+\r\n| runner_name | race_name | total_time |\r\n+-------------+---------------+----------------+\r\n| bolt | 1600_meters | 20220918000630 |\r\n| bolt | 5K | 20221019002231 |\r\n| bolt | 10K | 20221120003805 |\r\n| bolt | half_marathon | 20221221013904 |\r\n| bolt | full_marathon | 20230122032310 |\r\n| felix | 1600_meters | 20220918000715 |\r\n| felix | 5K | 20221019003050 |\r\n| felix | 10K | 20221120011017 |\r\n| felix | half_marathon | 20221221021157 |\r\n| felix | full_marathon | 20230122040210 |\r\n+-------------+---------------+----------------+\r\n10 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Da Sie eine Operation auf zwei Spalten mit unterschiedlichen Datentypen durchf\u00fchren (end_time enth\u00e4lt TIMESTAMP-Werte und start_time enth\u00e4lt TIME-Werte), wei\u00df die Datenbank nicht, welchen Datentyp sie beim Ausgeben des Ergebnisses verwenden soll. Daher konvertiert sie beide Werte in Ganzzahlen, um die Operation durchzuf\u00fchren, was zu langen Zahlen in der Spalte total_time f\u00fchrt.<\/p>\n<p>Um die Daten lesbarer und verst\u00e4ndlicher zu machen, k\u00f6nnen Sie die Funktion CAST verwenden, um diese langen Ganzzahlwerte in den Datentyp TIME umzuwandeln. Beginnen Sie dazu mit CAST, gefolgt von einer \u00f6ffnenden Klammer, den zu konvertierenden Werten und anschlie\u00dfend dem Schl\u00fcsselwort AS sowie dem Zieldatentyp.<\/p>\n<p>Die folgende Abfrage ist identisch mit dem vorherigen Beispiel, verwendet jedoch eine CAST-Funktion, um die Spalte total_time in den Datentyp Zeit zu konvertieren:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, race_name, CAST(end_time - start_time AS time)\r\nAS total_time \r\nFROM race_results;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+---------------+------------+\r\n| runner_name | race_name | total_time |\r\n+-------------+---------------+------------+\r\n| bolt | 1600_meters | 00:06:30 |\r\n| bolt | 5K | 00:22:31 |\r\n| bolt | 10K | 00:38:05 |\r\n| bolt | half_marathon | 01:39:04 |\r\n| bolt | full_marathon | 03:23:10 |\r\n| felix | 1600_meters | 00:07:15 |\r\n| felix | 5K | 00:30:50 |\r\n| felix | 10K | 01:10:17 |\r\n| felix | half_marathon | 02:11:57 |\r\n| felix | full_marathon | 04:02:10 |\r\n+-------------+---------------+------------+\r\n10 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>CAST wandelte die Datenwerte in dieser Ausgabe in TIME um, wodurch sie sehr gut lesbar und verst\u00e4ndlich wurden.<\/p>\n<p>Nun verwenden wir einige Aggregatfunktionen in Kombination mit der CAST-Funktion, um die k\u00fcrzeste, l\u00e4ngste und Gesamtzeit jedes L\u00e4ufers zu ermitteln. Zuerst suchen wir mit der MIN-Funktion nach der minimalen (oder k\u00fcrzesten) Zeit. Auch hier verwenden wir CAST, um die TIMESTAMP-Datenwerte zur besseren \u00dcbersicht in TIME-Datenwerte umzuwandeln. Beachten Sie, dass bei der Verwendung zweier Funktionen wie in diesem Beispiel zwei Klammerpaare erforderlich sind und die Berechnung der Gesamtzeit (Endzeit - Startzeit) in einer davon erfolgen muss. F\u00fcgen Sie abschlie\u00dfend eine GROUP BY-Klausel hinzu, um diese Werte nach der Spalte \u201eL\u00e4ufername\u201c zu sortieren und die Rennergebnisse anzuzeigen.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, MIN(CAST(end_time - start_time AS time)) AS min_time\r\nFROM race_results GROUP BY runner_name;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+----------+\r\n| runner_name | min_time |\r\n+-------------+----------+\r\n| bolt | 00:06:30 |\r\n| felix | 00:07:15 |\r\n+-------------+----------+\r\n2 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Diese Ausgabe zeigt die k\u00fcrzeste Zeit des L\u00e4ufers an, in diesem Fall mindestens sechs Minuten und 30 Sekunden f\u00fcr Bolt und sieben Minuten und 15 Sekunden f\u00fcr Felix.<\/p>\n<p>Ermitteln Sie als N\u00e4chstes die l\u00e4ngste Ausf\u00fchrungszeit f\u00fcr jeden Runner. Sie k\u00f6nnen dieselbe Syntax wie in der vorherigen Anweisung verwenden, ersetzen Sie diesmal jedoch MIN durch MAX:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, MAX(CAST(end_time - start_time AS time)) AS max_time\r\nFROM race_results GROUP BY runner_name;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+----------+\r\n| runner_name | max_time |\r\n+-------------+----------+\r\n| bolt | 03:23:10 |\r\n| felix | 04:02:10 |\r\n+-------------+----------+\r\n2 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Diese Ausgabe zeigt, dass Bolts l\u00e4ngste Laufzeit insgesamt drei Stunden, 23 Minuten und 10 Sekunden betrug. Und Felix&#039; Laufzeit betrug insgesamt vier Stunden, zwei Minuten und 10 Sekunden.<\/p>\n<p>Nun fragen wir die Gesamtstunden jedes L\u00e4ufers ab. Verwenden Sie dazu die SUMME-Funktion, um die Gesamtstunden anhand von end_time - start_time zu berechnen, und wandeln Sie diese Datenwerte mit CAST in das Zeitformat TIME um. Vergessen Sie nicht, GROUP BY hinzuzuf\u00fcgen, um die Ergebnisse f\u00fcr jeden L\u00e4ufer zu sortieren.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-sql\" data-lang=\"SQL\"><code>SELECT runner_name, SUM(CAST(end_time - start_time AS time))\r\nAS total_hours FROM race_results GROUP BY runner_name;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n+-------------+-------------+\r\n| runner_name | total_hours |\r\n+-------------+-------------+\r\n| bolt | 52880 |\r\n| felix | 76149 |\r\n+-------------+-------------+\r\n2 rows in set (0.00 sec)<\/code><\/pre>\n<\/div>\n<p>Interessanterweise zeigt diese Ausgabe, dass MySQL die Gesamtzeit als Ganzzahl interpretiert. W\u00fcrde man diese Ergebnisse als Zeiten lesen, w\u00fcrde Bolts Gesamtzeit in f\u00fcnf Stunden, 28 Minuten und 80 Sekunden unterteilt. Felix&#039; Zeit w\u00fcrde in sieben Stunden, 61 Minuten und 49 Sekunden unterteilt. Wie man sieht, ist dies keine logische Zeitaufteilung, was darauf hindeutet, dass die Zeit als Ganzzahl und nicht als Zeit berechnet wird. Wenn man dies beispielsweise in einem anderen DBMS wie PostgreSQL versucht, s\u00e4he dieselbe Abfrage etwas anders aus:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>SELECT runner_name, SUM(CAST(end_time - start_time AS time))\r\nAS total_hours FROM race_results GROUP BY runner_name;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nrunner_name | total_hours\r\n-------------+-------------\r\nfelix | 10:01:44\r\nbolt | 06:09:20\r\n(2 rows)<\/code><\/pre>\n<\/div>\n<p>In diesem Fall interpretiert die PostgreSQL-Abfrage die Werte als Zeitangaben und berechnet sie entsprechend. Felix&#039; Ergebnis ergibt sich daher zu insgesamt 10 Stunden, einer Minute und 44 Sekunden, w\u00e4hrend Bolts Ergebnis sechs Stunden, neun Minuten und 20 Sekunden betr\u00e4gt. Dies ist ein Beispiel daf\u00fcr, wie unterschiedliche DBMS-Implementierungen Datenwerte unterschiedlich interpretieren k\u00f6nnen, selbst wenn sie dieselbe Abfrage und denselben Datensatz verwenden.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Ergebnis<\/h2>\n<p>Das Verst\u00e4ndnis der Verwendung von Datum und Uhrzeit in SQL ist hilfreich, wenn Sie nach bestimmten Ergebnissen wie Minuten, Sekunden, Stunden, Tagen, Monaten, Jahren oder einer Kombination davon suchen. Dar\u00fcber hinaus gibt es zahlreiche Funktionen f\u00fcr Datum und Uhrzeit, die das Auffinden bestimmter Werte wie des aktuellen Datums oder der aktuellen Uhrzeit vereinfachen. Dieses Tutorial behandelt zwar nur Additions- und Subtraktionsberechnungen mit Datum und Uhrzeit in SQL, Sie k\u00f6nnen Datums- und Uhrzeitwerte jedoch mit beliebigen mathematischen Ausdr\u00fccken verwenden. Weitere Informationen finden Sie in unserem Leitfaden zu mathematischen Ausdr\u00fccken und Additionsfunktionen. Probieren Sie diese gerne bei Ihren Datums- und Uhrzeitabfragen aus.<\/p>","protected":false},"excerpt":{"rendered":"Einleitung Bei der Arbeit mit relationalen Datenbanken und der strukturierten Abfragesprache (SQL) kann es vorkommen, dass\u2026","protected":false},"author":1,"featured_media":15975,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,349],"tags":[403,391],"class_list":{"0":"post-15974","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-database","9":"tag-data-base","10":"tag-mysql"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-work-with-dates-and-times-in-sql\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627\u0628\u0637\u0647 \u0627\u06cc \u0648 \u0632\u0628\u0627\u0646 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0633\u0627\u062e\u062a\u0627\u0631\u06cc\u0627\u0641\u062a\u0647 (SQL)\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-work-with-dates-and-times-in-sql\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-25T08:40:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL\",\"datePublished\":\"2024-07-25T08:40:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\"},\"wordCount\":182,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/25111554\\\/SQL-1.jpg\",\"keywords\":[\"data base\",\"MySQL\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\",\"name\":\"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/25111554\\\/SQL-1.jpg\",\"datePublished\":\"2024-07-25T08:40:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/25111554\\\/SQL-1.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/07\\\/25111554\\\/SQL-1.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-work-with-dates-and-times-in-sql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/de\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wie man in SQL mit Datums- und Zeitangaben arbeitet \u2013 ITPiran-Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","og_locale":"de_DE","og_type":"article","og_title":"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627\u0628\u0637\u0647 \u0627\u06cc \u0648 \u0632\u0628\u0627\u0646 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0633\u0627\u062e\u062a\u0627\u0631\u06cc\u0627\u0641\u062a\u0647 (SQL)\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/de\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-07-25T08:40:56+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"admin","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL","datePublished":"2024-07-25T08:40:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/"},"wordCount":182,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","keywords":["data base","MySQL"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/","name":"Wie man in SQL mit Datums- und Zeitangaben arbeitet \u2013 ITPiran-Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","datePublished":"2024-07-25T08:40:56+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/07\/25111554\/SQL-1.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-work-with-dates-and-times-in-sql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u062f\u0631 SQL"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"Iranische Nachrichten und Artikel zum Thema nachhaltiger Handel","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Nachhaltiger iranischer Unternehmensblog","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"Administrator","url":"https:\/\/www.itpiran.net\/blog\/de\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/15974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/comments?post=15974"}],"version-history":[{"count":3,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/15974\/revisions"}],"predecessor-version":[{"id":15978,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/15974\/revisions\/15978"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media\/15975"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media?parent=15974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/categories?post=15974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/tags?post=15974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}