SQL - Datumsfunktionen. Transact-SQL-Funktionen SQL-Funktionen für die Arbeit mit Datumsangaben

Abrufen des aktuellen Datums und der aktuellen Uhrzeit

Um das aktuelle Datum (ohne Uhrzeit) im Format JJJJ-MM-TT zu erhalten, können Sie die Funktionen verwenden:

  • CURDATE()
  • AKTUELLES DATUM()

Um die aktuelle Uhrzeit (ohne Datum) im Format HH:MM:SS zu erhalten, können Sie die Funktionen verwenden:

  • CURTIME()
  • AKTUELLE UHRZEIT()

Um das aktuelle Datum und die aktuelle Uhrzeit im Format JJJJ-MM-TT HH:MM:SS zu erhalten, können Sie eine der folgenden Funktionen verwenden:

  • JETZT()
  • SYSDATE()
  • AKTUELLER ZEITSTEMPEL

Beispiel 1

SELECT CURDATE(); oder SELECT CURRENT_DATE();

Ergebnis: 28.08.2016

SELECT CURTIME(); oder SELECT CURENT_TIME();

Ergebnis: 19:29:54

JETZT AUSWÄHLEN(); oder SELECT SYSDATE(); oder SELECT CURRENT_TIMESTAMP;

Ergebnis: 28.08.2016 19:29:54

Addieren und Subtrahieren eines Zeitintervalls

Bei Datums- und Uhrzeitangaben müssen Sie oft arithmetische Operationen durchführen: Addieren oder subtrahieren Sie ein bestimmtes Zeitintervall zu einem bestimmten Datum. Das Hinzufügen eines Zeitintervalls kann auf drei Arten erfolgen:

  • Funktion DATE_ADD(original_date, INTERVAL-Ausdruckstyp);
  • Funktion ADDDATE(original_date, INTERVAL-Ausdruckstyp);
  • Ausdruck: Quelldatum + Ausdruckstyp INTERVAL.

Das Subtrahieren eines Zeitintervalls kann auch auf drei Arten erfolgen:

  • Funktion DATE_SUB(source_date, INTERVAL expression type);
  • Funktion SUBDATE(source_date, INTERVAL expression type);
  • Ausdruck: Quelldatum – INTERVAL-Ausdruckstyp.

Quelldatum ist ein Datum, zu dem ein bestimmtes Zeitintervall addiert oder subtrahiert wird. Ausdruck– Dies ist das addierte oder subtrahierte Zeitintervall selbst, angegeben im Textformat. Typ– ein Argument, das den Typ des hinzuzufügenden Intervalls angibt. Diese Option gibt an, wie der Ausdruck richtig interpretiert wird. Beispielsweise kann der Ausdruck „3:24“ entweder als 3 Stunden 24 Minuten oder als 3 Minuten 24 Sekunden interpretiert werden. Wenn der Typ „MINUTE_SECOND“ angegeben wird, ist die Interpretation eindeutig. Die Beziehung zwischen den Ausdrucks- und Typargumenten ist in der Tabelle dargestellt:

Beispiel 2

Die nächsten drei Befehle führen denselben Vorgang aus. Sie addieren eine Sekunde zur angegebenen Zeit.

WÄHLEN Sie „2016-09-10 23:59:59“ + Intervall 1 SEKUNDE;

SELECT ADDDATE("2016-09-10 23:59:59", Intervall 1 SEKUNDE);

SELECT DATE_ADD("2016-09-10 23:59:59", Intervall 1 SEKUNDE);

Das Ergebnis aller drei Teams ist das gleiche: 11.09.2016 00:00:00.

Beispiel 3

Die folgenden drei Befehle berechnen ein Datum, das genau eineinhalb Jahre vor einem bestimmten Datum liegt:

SELECT DATE_SUB("2016-09-10 23:59:59", Intervall "1-6" YEAR_MONTH);

SELECT SUBDATE("2016-09-10 23:59:59", Intervall "1-6" YEAR_MONTH);

SELECT „2016-09-10 23:59:59“ – Intervall „1-6“ YEAR_MONTH;

Das Ergebnis aller drei Teams ist das gleiche: 10.03.2015 23:59:59.

Umrechnungsfunktionen in andere Einheiten

Manchmal ist es praktisch, mit einem Datum zu arbeiten, das als Anzahl der seit Jahr 0 vergangenen Tage dargestellt wird. Um ein Datum in dieses Format und zurück in MySQL zu konvertieren, gibt es zwei Funktionen:

  • Heutiges Datum) – gibt die Tagesnummer zurück, die dem Datumsargument entspricht.
  • FROM_DAYS(day_number)– gibt das Datum entsprechend der Tagesnummer zurück.

Vom Autor: Heute werden wir darüber sprechen, wie Datumsfunktionen in SQL funktionieren. Die folgende Tabelle enthält eine Liste aller wichtigen verfügbaren Datums- und Uhrzeitfunktionen. Es gibt andere, die von verschiedenen DBMS unterstützt werden. Diese Liste stellt die im MySQL-DBMS verfügbaren Funktionen dar.

DATUM HINZUFÜGEN(). Fügt Daten hinzu

ZEIT HINZUFÜGEN(). Fügt Zeit hinzu

CONVERT_TZ(). Konvertiert von einer Zeitzone in eine andere

CURDATE(). Gibt das aktuelle Datum zurück

CURRENT_DATE(), CURRENT_DATE. Synonyme für CURDATE()

CURRENT_TIME(), CURRENT_TIME. Synonyme für CURTIME()

CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP. Synonyme für JETZT()

CURTIME(). Gibt die aktuelle Uhrzeit zurück

DATE_ADD(). Fügt zwei Daten hinzu

DATUMSFORMAT(). Legt das angegebene Datumsformat fest

DATE_SUB(). Subtrahiert ein Datum von einem anderen

DATUM(). Extrahiert den Datumsteil aus einem Ausdruck, der ein Datum oder eine Uhrzeit und ein Datum darstellt

DATEDIFF(). Subtrahiert ein Datum von einem anderen

TAG(). Synonym für DAYOFMONTH()

TAGNAME(). Gibt den Wochentag zurück

DAYOFMONT(). Gibt den Tag des Monats zurück (1-31)

WOCHENTAG(). Gibt den Index des Wochentags des Arguments zurück

DAYOFYEAR(). Gibt die Nummer des Tages im Jahr zurück (1-366)

EXTRAKT. Ruft den Datumsteil ab

FROM_DAYS(). Wandelt eine Tageszahl in ein Datum um

FROM_UNIXTIME(). Formatiert ein Datum als UNIX-Zeitstempel

STUNDE(). Ruft die Stunde ab

LETZTER TAG. Gibt den letzten Tag des Monats für das Argument zurück

LOCALTIME(), LOCALTIME. Synonym für NOW()

LOCALTIMESTAMP, LOCALTIMESTAMP(). Synonym für NOW()

MAKEDATE(). Erstellt ein Datum aus Jahr und Tag des Jahres

ZEIT SCHAFFEN. ZEIT SCHAFFEN(). MIKROSEKUNDE(). Gibt Mikrosekunden vom Argument zurück

MINUTE(). Gibt Minuten vom Argument zurück

MONAT(). Gibt den Monat eines Datums zurück

MONTHNAME(). Gibt den Namen des Monats zurück

JETZT(). Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück

PERIOD_ADD(). Fügt dem Jahr-Monat einen Punkt hinzu

PERIOD_DIFF(). Gibt die Anzahl der Monate zwischen Perioden zurück

QUARTAL(). Gibt das Viertel aus dem Argument zurück

SEC_TO_TIME(). Konvertiert Sekunden in das Format „HH:MM:SS“.

ZWEITE(). Gibt Sekunden zurück (0-59)

STR_TO_DATE(). Konvertiert eine Zeichenfolge in ein Datum

SUBDATE(). Bei Aufruf mit drei Argumenten das Synonym DATE_SUB()

SUBTIME(). Subtrahiert die Zeit

SYSDATE(). Gibt die Ausführungszeit einer Funktion zurück

ZEITFORMAT(). Legt das Zeitformat fest

TIME_TO_SEC(). Gibt das in Sekunden konvertierte Argument zurück

ZEIT(). Extrahiert den Zeitteil des übergebenen Ausdrucks

TimeDiff(). Subtrahiert die Zeit

TIMESTAMP(). Mit einem Argument gibt diese Funktion einen Datums- oder Datum/Uhrzeit-Ausdruck zurück. Mit zwei Argumenten – fügt diese beiden Argumente hinzu

TIMESTAMPADD(). Fügt einem Datums- und Uhrzeitausdruck ein Intervall hinzu

TIMESTAMPDIFF(). Subtrahiert ein Intervall von einem Datum/Uhrzeit-Ausdruck

TO_DAYS(). Gibt das in Tage konvertierte Datumsargument zurück

UNIX_TIMESTAMP(). Gibt einen UNIX-Zeitstempel zurück

UTC_DATE(). Gibt das aktuelle UTC-Datum zurück

UTC_TIME(). Gibt die aktuelle UTC-Zeit zurück

UTC_TIMESTAMP(). Gibt das aktuelle UTC-Datum und die aktuelle UTC-Uhrzeit zurück

WOCHE(). Gibt die Wochennummer zurück

WOCHENTAG(). Gibt den Index des Wochentags zurück

WEEKOFYEAR(). Gibt die Kalenderwochennummer (1-53) zurück.

JAHR(). Gibt das Jahr zurück

JAHRESWOCHE(). Gibt das Jahr und die Woche zurück

ADDDATE(Datum,INTERVAL-Ausdruckseinheit), ADDDATE(Ausdruck,Tage)

Beim Aufruf mit einem zweiten Argument, das als INTERVAL angegeben ist, ist ADDDATE() ein Synonym für DATE_ADD(). Die zugehörige Funktion SUBDATE() ist ein Synonym für DATE_SUB(). Informationen zum INTERVAL-Blockargument finden Sie unter DATE_ADD().

Beim Aufruf mit dem zweiten Argument in Tagen behandelt MySQL dies als eine ganzzahlige Anzahl von Tagen, die dem Ausdruck hinzugefügt werden.

ADDTIME(expr1,expr2)

ADDTIME() fügt expr2 zu expr1 hinzu und gibt das Ergebnis zurück. Ausdruck1 ist ein Zeit- oder Datum/Uhrzeit-Ausdruck, während Ausdruck2 ein Zeitausdruck ist.

CONVERT_TZ(dt,from_tz,to_tz)

Konvertiert den Datums- und Uhrzeitwert dt aus der in from_tz angegebenen Zeitzone in die in to_tz angegebene Zeitzone und gibt den resultierenden Wert zurück. Diese Funktion gibt NULL zurück, wenn die Argumente ungültig sind.

CURDATE()

Gibt das aktuelle Datum als Wert im Format „JJJJ-MM-TT“ oder JJJJMMTT zurück, je nachdem, ob diese Funktion in einem Zeichenfolgen- oder numerischen Kontext verwendet wird.

CURRENT_DATE und CURRENT_DATE()

CURRENT_DATE und CURRENT_DATE() sind Synonyme für CURDATE()

CURTIME()

Gibt die aktuelle Uhrzeit als Wert im Format „HH:MM:SS“ oder HHMMSS zurück, je nachdem, ob die Funktion in einem String- oder numerischen Kontext verwendet wird. Der Wert wird für die aktuelle Zeitzone ausgedrückt.

CURRENT_TIME und CURRENT_TIME()

CURRENT_TIME und CURRENT_TIME() sind Synonyme für CURTIME().

CURRENT_TIMESTAMP und CURRENT_TIMESTAMP()

CURRENT_TIMESTAMP und CURRENT_TIMESTAMP() sind Synonyme für NOW().

DATUM(Ausdruck)

Ruft den Datumsteil eines Datums- oder Datum/Uhrzeit-Ausdrucks ab.

DATEDIFF(expr1,expr2)

DATEDIFF() gibt expr1.expr2 zurück, ausgedrückt als Anzahl der Tage zwischen zwei Daten. Sowohl expr1 als auch expr2 sind Datums- oder Datetime-Ausdrücke. In den Berechnungen werden nur die Datumsteile verwendet.

DATE_ADD(Datum,INTERVAL-Ausdruckseinheit), DATE_SUB(Datum,INTERVAL-Ausdruckseinheit)

Diese Funktionen führen arithmetische Operationen an Datumsangaben durch. date wird als DATETIME- oder DATE-Wert dargestellt, der das Startdatum angibt. expr ist ein Ausdruck, der den Intervallwert angibt, der zum ursprünglichen Datum addiert oder davon subtrahiert werden soll. expr ist eine Zeichenfolge; Für negative Intervalle kann es mit „-“ beginnen.

Unit ist ein Schlüsselwort, das die Maßeinheiten für den Ausdruck angibt. Beim Schlüsselwort INTERVAL und bei der Einheitennotation wird die Groß-/Kleinschreibung nicht beachtet. Die folgende Tabelle zeigt die erwartete Form des Arguments expr für jeden Einheitenwert.

Die Werte QUARTER und WEEK sind in MySQL seit Version 5.0.0 verfügbar.

DATE_FORMAT (Datum,Format)

Dieser Befehl formatiert den Datumswert gemäß der angegebenen Formatzeichenfolge. Die folgenden Zeiger können in der Formatzeile verwendet werden. Formatindikatoren müssen ein „%“-Zeichen voranstellen.

%A. Kurzname des Wochentags (Sun..Sat)

%B. Abgekürzter Monatsname (Jan..Dez)

%Mit. Numerische Bezeichnung des Monats (0…12)

%D. Tag des Monats mit englischem Suffix (0, 1, 2, 3,.)

%D. Numerische Bezeichnung des Tages des Monats (00..31)

%e. Numerische Bezeichnung des Tages des Monats (00..31)

%F. Mikrosekunden (000000..999999)

%H. Stunde (00..23)

%H. Stunde (01..12)

%ICH. Stunde (01..12)

%ich. Numerische Bezeichnung der Minuten (00..59)

%J. Tag des Jahres (001..366)

%k. Stunde (0..23)

%l. Stunde (1..12)

%M. Name des Monats (Januar..Dezember)

%M. Numerische Bezeichnung des Monats (00..12)

%R. Vormittags oder nachmittags

%R. Uhrzeit, 12-Stunden-Format (hh:mm:ss gefolgt von AM oder PM)

%S. Sekunden (00..59)

%S. Sekunden (00..59)

%T. Uhrzeit, 24-Stunden-Format (hh:mm:ss)

%U. Woche (00..53), wobei Sonntag der erste Tag der Woche ist

%u. Woche (00..53), wobei Montag der erste Tag der Woche ist

%V. Woche (01..53), wobei Sonntag der erste Tag der Woche ist; Wird mit %X verwendet

%v. Woche (01..53), wobei Montag der erste Tag der Woche ist; Wird mit %x verwendet

%W. Name des Wochentags (Sonntag..Samstag)

%w. Wochentag (0=Sonntag..6=Samstag)

%X. Jahr für eine Woche, deren erster Tag der Woche Sonntag ist, eine vierstellige Zahl; Wird mit %V verwendet

%X. Jahr für eine Woche, deren erster Tag der Woche Montag ist, eine vierstellige Zahl; Wird mit %V verwendet

%Y. Jahr, Datum, vier Ziffern

%y. Numerische Jahresangabe (zweistellig)

%%. Im wahrsten Sinne des Wortes das %-Symbol

%X. x, für alle.x., die oben nicht aufgeführt sind

DATE_SUB(Datum,INTERVAL Ausdruckseinheit)

Ähnlich der Funktion DATE_ADD().

TAG(Datum)

DAY() ist ein Synonym für die Funktion DAYOFMONTH().

TAGNAME(Datum)

Gibt den Wochentag für das angegebene Datum zurück.

DAYOFMONTH(Datum)

Gibt den Tag des Monats für das angegebene Datum im Bereich von 0 bis 31 zurück.

DAYOFWEEK(Datum)

Gibt den Index des Wochentags zurück (1 = Sonntag, 2 = Montag, ., 7 = Samstag). Diese Indexwerte folgen dem ODBC-Standard.

DAYOFYEAR(Datum)

Gibt den Tag des Jahres für das angegebene Datum im Bereich von 1 bis 366 zurück.

EXTRAKT (Einheit AB Datum)

Die Funktion EXTRACT() verwendet die gleichen Arten von Einheitenindikatoren wie DATE_ADD() oder DATE_SUB(), führt jedoch keine arithmetischen Operationen an Datumsangaben durch, sondern extrahiert den Einheitenindikatorteil des Datums.

FROM_DAYS(N)

Der DATE-Wert wird unter Berücksichtigung der Anzahl der Tage N zurückgegeben.

Notiz. Verwenden Sie FROM_DAYS() für alte Daten sorgfältig. Die Funktion ist nicht für die Arbeit mit Datumswerten vor der Einführung des Gregorianischen Kalenders (1582) vorgesehen.

FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)

Gibt eine Darstellung des Arguments unix_timestamp als Wert im Format „JJJJ-MM-TT HH:MM:SS oder JJJJMMTDHHMMSS“ zurück, je nachdem, ob diese Funktion in einem Zeichenfolgen- oder numerischen Kontext verwendet wird. Der Wert wird in der aktuellen Zeitzone ausgedrückt. Der Parameter unix_timestamp ist ein interner Zeitstempelwert, der von der Funktion UNIX_TIMESTAMP() generiert wird.

Wenn Format angegeben ist, wird das Ergebnis gemäß der Formatzeichenfolge formatiert, die auf die gleiche Weise verwendet wird, wie im Abschnitt DATE_FORMAT() beschrieben.

STUNDE(Zeit)

Gibt die Stunden ab dem angegebenen Zeitpunkt zurück. Der Bereich des zurückgegebenen Werts liegt zwischen 0 und 23. Der Bereich der TIME-Werte ist jedoch tatsächlich viel größer, sodass HOUR Werte über 23 zurückgeben kann.

LAST_DAY(Datum)

Nimmt einen Datums- oder Datum/Uhrzeit-Wert und gibt den Wert zurück, der dem letzten Tag des Monats entspricht. Gibt NULL zurück, wenn das Argument ungültig ist.

LOCALTIME und LOCALTIME()

LOCALTIME und LOCALTIME() sind Synonyme für NOW().

LOCALTIMESTAMP und LOCALTIMESTAMP()

LOCALTIMESTAMP und LOCALTIMESTAMP() sind Synonyme für NOW().

MAKEDATE(Jahr,TagdesJahres)

Gibt die Werte für das Datum, das angegebene Jahr und den Tag des Jahres zurück. Der Wert von dayofyear muss größer als 0 sein, sonst ist das Ergebnis NULL.

MAKETIME(Stunde, Minute, Sekunde)

Gibt den aus den Argumenten Stunde, Minute und Sekunde berechneten Zeitwert zurück.

MIKROSEKUNDE(expr)

Gibt Mikrosekunden aus einem Zeitausdruck oder datetime(expr)-Ausdruck als Zahl im Bereich von 0 bis 999999 zurück.

MINUTE(Zeit)

Gibt die Minuten für die angegebene Zeit im Bereich von 0 bis 59 zurück.

Monatsdatum)

Gibt den Monat für das angegebene Datum im Bereich von 0 bis 12 zurück.

MONTHNAME(Datum)

Gibt den vollständigen Monatsnamen für das angegebene Datum zurück.

JETZT()

Gibt das aktuelle Datum und die aktuelle Uhrzeit als Wert im Format „JJJJ-MM-TT HH:MM:SS“ oder JJJJMMTDHHMMSS zurück, je nachdem, ob die Funktion in einem Zeichenfolgen- oder numerischen Kontext verwendet wird. Dieser Wert wird in der aktuellen Zeitzone ausgedrückt.

PERIOD_ADD(P,N)

Fügt der Periode P N Monate hinzu (im Format JJMM oder JJJJMM). Gibt einen Wert im Format JJJJMM zurück. Beachten Sie, dass das Periodenargument P kein Datumswert ist.

PERIOD_DIFF(P1,P2)

Gibt die Anzahl der Monate zwischen den Perioden P1 und P2 zurück. Die Zeiträume P1 und P2 müssen im Format JJMM oder JJJJMM angegeben werden. Beachten Sie, dass die Periodenargumente P1 und P2 keine Datumswerte sind.

QUARTAL(Datum)

Gibt das Quartal des Jahres für das angegebene Datum im Bereich 1 bis 4 zurück.

Zweites Mal)

Gibt den Sekundenwert für eine Zeit im Bereich von 0 bis 59 zurück.

SEC_TO_TIME(Sekunden)

Gibt das Sekundenargument zurück, konvertiert in Stunden, Minuten und Sekunden im Format „HH:MM:SS“ oder HHMMSS, je nachdem, ob die Funktion in einem Zeichenfolgen- oder numerischen Kontext verwendet wird.

STR_TO_DATE(str,format)

Dies ist die Umkehrung der Funktion DATE_FORMAT(). Es akzeptiert die Zeichenfolge str und die Formatzeichenfolge format. Die Funktion STR_TO_DATE() gibt DATETIME zurück, wenn die Formatzeichenfolge sowohl ein Datum als auch eine Uhrzeit enthält. Andernfalls wird DATE oder TIME zurückgegeben, wenn die Zeichenfolge nur ein Datum oder eine Uhrzeit enthält.

SUBDATE(Datum,INTERVAL-Ausdruckseinheit) und SUBDATE(Ausdruck,Tage)

Wenn SUBDATE() mit einem zweiten Argument aufgerufen wird, das als INTERVAL angegeben ist, ist die Funktion ein Synonym für DATE_SUB(). Informationen zum INTERVAL-Argument finden Sie unter DATE_ADD().

SUBTIME(expr1,expr2)

Die Funktion SUBTIME() gibt expr1 zurück. Ausdruck2 wird als Wert im gleichen Format wie Ausdruck1 ausgedrückt. Der Wert von expr1 ist ein Zeit- oder Datum/Uhrzeit-Ausdruck, und der Wert von expr2 ist ein Zeitausdruck.

SYSDATE()

Gibt das aktuelle Datum und die aktuelle Uhrzeit als Wert im Format „JJJJ-MM-TT HH:MM:SS“ oder JJJJMMTDHHMMSS zurück, je nachdem, ob die Funktion in einem Zeichenfolgen- oder numerischen Kontext verwendet wird.

ZEIT(expr)

Extrahiert den Zeitanteil von expr und gibt ihn als String zurück.

TIMEDIFF(expr1,expr2)

TIMEDIFF() gibt expr1 zurück. expr2 wird als Zeitwert ausgedrückt. Die Werte expr1 und expr2 sind entweder Zeit- oder Datum/Uhrzeit-Ausdrücke, aber beide müssen vom gleichen Typ sein.

TIMESTAMP (expr), TIMESTAMP (expr1, expr2)

Wenn ein Argument angegeben ist, gibt diese Funktion einen Datums- oder Datumszeitausdruck expr als Datumszeitwert zurück. Mit zwei Argumenten fügt es den Zeitausdruck expr2 zum Datums- oder Datetime-Ausdruck expr1 hinzu und gibt das Ergebnis als Datetime-Wert zurück.

TIMESTAMPADD(Einheit, Intervall, Datum/Uhrzeit_Ausdruck)

Diese Funktion fügt einem Datums- oder Zeitausdruck datetime_expr einen ganzzahligen Intervallausdruck hinzu. Die Einheiten für das Intervall werden durch das Unit-Argument angegeben, das einen der folgenden Werte annehmen kann:

Der Einheitenwert kann mit einem der oben gezeigten Schlüsselwörter oder mit dem Präfix SQL_TSI_ angegeben werden. Beispielsweise sind DAY und SQL_TSI_DAY gültige Werte.

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Gibt die ganzzahlige Differenz zwischen den Datums- oder Datumszeitausdrücken datetime_expr1 und datetime_expr2 zurück. Die Maßeinheiten für das Ergebnis werden durch das Einheitenargument angegeben. Die gültigen Werte für das Unit-Argument sind dieselben wie die in der Funktion TIMESTAMPADD() aufgeführten.

TIME_FORMAT(Zeit,Format)

Diese Funktion wird auf die gleiche Weise wie die Funktion DATE_FORMAT() verwendet, die Formatzeichenfolge kann jedoch nur Formatspezifizierer für Stunden, Minuten und Sekunden enthalten.

Wenn der Zeitwert einen Stundenteil enthält, der größer als 23 ist, geben die Uhrformatindikatoren %H und %k einen Wert an, der über dem normalen Bereich von 0 bis 23 liegt. Andere Uhrformatindikatoren geben einen Wert von Modulo 12 Stunden an.

TIME_TO_SEC(Zeit)

Gibt das in Sekunden konvertierte Zeitargument zurück.

Heutiges Datum)

Gibt die Tageszahl (Anzahl der Tage seit Jahr 0) für das angegebene Datum zurück.

UNIX_TIMESTAMP(), UNIX_TIMESTAMP(Datum)

Wenn diese Funktion ohne Argument aufgerufen wird, gibt sie den Unix-Zeitstempel (Sekunden seit „1970-01-01 00:00:00“ UTC) als positive Ganzzahl zurück. Wenn UNIX_TIMESTAMP() mit einem Datumsargument aufgerufen wird, gibt es den Wert des Arguments zurück, ausgedrückt in Sekunden seit „1970-01-01 00:00:00“ UTC. date kann eine DATE-Zeichenfolge, eine DATETIME-Zeichenfolge, ein TIMESTAMP oder eine Zahl im Format JJMMTT oder JJJJMMTT sein.

UTC_DATE, UTC_DATE()

Gibt das aktuelle UTC-Datum als Wert im Format „JJJJ-MM-TT“ oder JJJJMMTT zurück, je nachdem, ob diese Funktion in einem Zeichenfolgen- oder numerischen Kontext verwendet wird.

UTC_TIME, UTC_TIME()

Gibt die aktuelle UTC-Zeit als Wert im Format „HH:MM:SS“ oder HHMMSS zurück, je nachdem, ob die Funktion in einem String- oder numerischen Kontext verwendet wird.

UTC_TIMESTAMP, UTC_TIMESTAMP()

Gibt das aktuelle UTC-Datum und die aktuelle UTC-Uhrzeit als Wert „JJJJ-MM-TT HH:MM:SS“ oder im Format YYYYMMDDHHMMSS zurück, je nachdem, ob diese Funktion in einem Zeichenfolgen- oder numerischen Kontext verwendet wird.

WOCHE(Datum[,Modus])

Diese Funktion gibt die Wochennummer für das angegebene Datum zurück. Mit der WEEK()-Form mit zwei Argumenten können Sie angeben, ob die Woche am Sonntag oder Montag beginnt und ob der Rückgabewert im Bereich von 0 bis 53 oder 1 bis 53 liegen soll. Wenn das Modusargument weggelassen wird, wird der Wert von Die Systemvariable default_week_format wird verwendet

WOCHENTAG(Datum)

Gibt den Index des Wochentags für das angegebene Datum zurück (0 = Montag, 1 = Dienstag, 6 = Sonntag).

WEEKOFYEAR(Datum)

Gibt die Kalenderwoche für das angegebene Datum als Zahl im Bereich von 1 bis 53 zurück. WEEKOFYEAR() ist eine Kompatibilitätsfunktion, die WEEK(date,3) entspricht.

JAHR(Datum)

Gibt das Jahr für das angegebene Datum zurück, im Bereich von 1000 bis 9999, oder 0 für date.zero.

YEARWEEK(Datum), YEARWEEK(Datum,Modus)

Gibt das Jahr und die Woche für das angegebene Datum zurück. Das Modusargument funktioniert genauso wie das Modusargument der Funktion WEEK(). Das resultierende Jahr kann sich von dem Jahr im Datumsargument für die erste und letzte Woche des Jahres unterscheiden.

Notiz. Die Wochennummer unterscheidet sich von dem, was WEEK() für die optionalen Argumente 0 oder 1 zurückgibt (0), da WEEK() die Woche im Kontext eines bestimmten Jahres zurückgibt.

Letzte Aktualisierung: 29.07.2017

T-SQL bietet eine Reihe von Funktionen zum Arbeiten mit Datums- und Uhrzeitangaben:

    GETDATE: Gibt das aktuelle lokale Datum und die aktuelle Uhrzeit basierend auf der Systemuhr als Datetime-Objekt zurück

    SELECT GETDATE() – 28.07.2017 21:34:55.830

    GETUTCDATE: Gibt das aktuelle lokale Datum und die aktuelle Uhrzeit in Greenwich Mean Time (UTC/GMT) als Datetime-Objekt zurück

    SELECT GETUTCDATE() – 28.07.2017 18:34:55.830

    SYSDATETIME: Gibt das aktuelle lokale Datum und die aktuelle lokale Uhrzeit basierend auf der Systemuhr zurück, unterscheidet sich jedoch von GETDATE darin, dass Datum und Uhrzeit als datetime2-Objekt zurückgegeben werden

    SELECT SYSDATETIME() – 28.07.2017 21:02:22.7446744

    SYSUTCDATETIME: Gibt das aktuelle lokale Datum und die aktuelle lokale Uhrzeit in Greenwich Mean Time (UTC/GMT) als datetime2-Objekt zurück

    SELECT SYSUTCDATETIME() – 28.07.2017 18:20:27.5202777

    SYSDATETIMEOFFSET: Gibt ein datetimeoffset(7)-Objekt zurück, das das Datum und die Uhrzeit relativ zu GMT enthält

    SELECT SYSDATETIMEOFFSET() -- 28.07.2017 21:02:22.7446744 +03:00

    TAG: Gibt den Tag des Datums zurück, das als Parameter übergeben wird

    SELECT DAY(GETDATE()) – 28

    MONAT: Gibt den Monat eines Datums zurück

    SELECT MONTH(GETDATE()) – 7

    JAHR: Gibt das Jahr eines Datums zurück

    SELECT YEAR(GETDATE()) – 2017

    DATENAME: Gibt den Datumsteil als Zeichenfolge zurück. Der Auswahlparameter für den Datumsteil wird als erster Parameter und das Datum selbst als zweiter Parameter übergeben:

    SELECT DATENAME(month, GETDATE()) – Juli

    Um einen Teil eines Datums zu bestimmen, können Sie die folgenden Parameter verwenden (ihre abgekürzten Versionen sind in Klammern angegeben):

    • Jahr (jj, jjjj): Jahr

      Viertel (qq, q) : Viertel

      Monat (mm, m): Monat

      dayofyear (dy, y): Tag des Jahres

      Tag (dd, d): Tag des Monats

      Woche (wk, ww): Woche

      Wochentag (dw): Wochentag

      Stunde (hh): Stunde

      Minute (mi, n) : Minute

      Sekunde (ss, s) : Sekunde

      Millisekunde (ms): Millisekunde

      Mikrosekunde (mcs): Mikrosekunde

      Nanosekunde (ns): Nanosekunde

      tzoffset (tz): Offset in Minuten relativ zu GMT (für ein datetimeoffset-Objekt)

    DATEPART: Gibt den Datumsteil als Zahl zurück. Der Auswahlparameter für den Datumsteil wird als erster Parameter übergeben (es werden dieselben Parameter wie für DATENAME verwendet) und das Datum selbst wird als zweiter Parameter übergeben:

    SELECT DATEPART(month, GETDATE()) -- 7

    DATEADD: Gibt ein Datum zurück, das das Ergebnis der Addition einer Zahl zu einer bestimmten Datumskomponente ist. Der erste Parameter stellt die oben für die Funktion DATENAME beschriebene Datumskomponente dar. Der zweite Parameter ist die hinzuzufügende Menge. Der dritte Parameter ist das Datum selbst, zu dem Sie Folgendes hinzufügen müssen:

    SELECT DATEADD(Monat, 2, „2017-7-28“) – 2017-09-28 00:00:00.000 SELECT DATEADD(Tag, 5, „2017-7-28“) – 2017-08-02 00 :00:00.000 SELECT DATEADD(Tag, -5, „28.07.2017“) – 23.07.2017 00:00:00.000

    Wenn die hinzugefügte Menge eine negative Zahl darstellt, wird das Datum tatsächlich verringert.

    DATEDIFF: Gibt die Differenz zwischen zwei Datumsangaben zurück. Der erste Parameter ist die Datumskomponente, die angibt, in welchen Einheiten die Differenz gemessen werden soll. Der zweite und dritte Parameter sind die zu vergleichenden Daten:

    SELECT DATEDIFF(Jahr, „2017-7-28“, „2018-9-28“) – Differenz 1 Jahr SELECT DATEDIFF(Monat, „2017-7-28“, „2018-9-28“) – Differenz 14 Monate SELECT DATEDIFF(Tag, „2017-7-28“, „2018-9-28“) – Differenz 427 Tage

    TODATETIMEOFFSET: Gibt einen datetimeoffset-Wert zurück, der das Ergebnis der Addition des Zeitversatzes zu einem anderen datetimeoffset-Objekt ist

    SELECT TODATETIMEOFFSET("28.7.2017 01:10:22", "+03:00")

    SWITCHOFFSET: Gibt einen datetimeoffset-Wert zurück, der das Ergebnis der Addition des Zeitversatzes zu einem datetime2-Objekt ist

    SELECT SWITCHOFFSET(SYSDATETIMEOFFSET(), "+02:30")

    EOMONTH: Gibt das Datum des letzten Tages für den Monat zurück, der im als Parameter übergebenen Datum verwendet wird.

    SELECT EOMONTH("2017-02-05") -- 2017-02-28 SELECT EOMONTH("2017-02-05", 3) -- 2017-05-31

    Als optionalen zweiten Parameter können Sie die Anzahl der Monate übergeben, die zum Datum addiert werden müssen. Dann wird der letzte Tag des Monats als neues Datum berechnet.

    DATEFROMPARTS: Erstellt nach Jahr, Monat und Tag ein Datum

    WÄHLEN SIE DATUM AUS TEILEN (2017, 7, 28) – 28.07.2017

    ISDATE: Testet, ob ein Ausdruck ein Datum ist. Wenn ja, wird 1 zurückgegeben, andernfalls wird 0 zurückgegeben.

    SELECT ISDATE("28.07.2017") -- 1 SELECT ISDATE("07.28.2017") -- 0 SELECT ISDATE("28.07.2017") -- 0 SELECT ISDATE("SQL") - - 0

Ein Beispiel für die Verwendung der Funktionen ist das Erstellen einer Bestelltabelle, die das Bestelldatum enthält:

CREATE TABLE Orders (Id INT IDENTITY PRIMARY KEY, ProductId INT NOT NULL, CustomerId INT NOT NULL, CreatedAt DATE NOT NULL DEFAULT GETDATE(), ProductCount INT DEFAULT 1, Price MONEY NOT NULL);

Der Ausdruck DEFAULT GETDATE() gibt an, dass, wenn beim Hinzufügen von Daten kein Datum angegeben wird, dieses automatisch mit der Funktion GETDATE() berechnet wird.

Ein weiteres Beispiel: Suchen wir nach Bestellungen, die vor 16 Tagen aufgegeben wurden:

SELECT * FROM Orders WHERE DATEDIFF(day, CreatedAt, GETDATE()) = 16

Grüße, liebe Leser der Blogseite. In einer Datenbank müssen häufig verschiedene Daten zu Datum und Uhrzeit gespeichert werden. Dabei kann es sich um das Datum der Hinzufügung der Informationen, das Datum der Benutzerregistrierung, den Zeitpunkt der letzten Autorisierung und andere Daten handeln. IN SQL-Sprache Es gibt viele Funktionen im Zusammenhang mit Datum und Uhrzeit, deshalb schauen wir uns sie heute an.

Alle unten besprochenen Funktionen funktionieren mit Kalenderdatentypen.

Abrufen des aktuellen Datums und der aktuellen Uhrzeit.

Um zu bekommen aktuelles Datum und Uhrzeit Funktion verwendet wird JETZT().

JETZT AUSWÄHLEN()
Ergebnis: 25.09.2015 14:42:53

Nur zum Empfangen aktuelles Datum Es gibt eine Funktion CURDATE().

SELECT CURDATE()
Ergebnis: 25.09.2015

Und Funktion CURTIME(), was nur zurückkommt aktuelle Uhrzeit:

SELECT CURTIME()
Ergebnis: 14:42:53

Die Funktionen CURDATE() und NOW() sind nützlich, um Datensätze zu einer Datenbank hinzuzufügen, für die Sie das Datum speichern möchten, an dem sie hinzugefügt wurden. Wenn Sie beispielsweise einen Artikel zu einer Website hinzufügen, wäre es eine gute Idee, dessen Veröffentlichungsdatum zu speichern. Dann sieht die Anfrage zum Hinzufügen eines Artikels zur Datenbank etwa so aus:

INSERT INTO posts (id_post, text_post, date_publication) VALUES (1, „Artikeltext“, NOW ());

Datum und Uhrzeit addieren und subtrahieren

Funktion ADDDATE (Datum, INTERVAL-Wert) ergänzt das Datum Datum Bedeutung Wert und gibt den resultierenden Wert zurück. Als Wert können folgende Werte verwendet werden:

  • ZWEITE - Sekunden
  • MINUTE - Minuten
  • STUNDE - Stunden
  • TAG – Tage
  • WOCHE - Wochen
  • MONAT - Monate
  • VIERTEL - Blöcke
  • JAHR – Jahre

sowie deren Kombinationen:

  • MINUTE_SECOND – Minuten und Sekunden
  • HOUR_SECOND Stunden – Minuten und Sekunden
  • HOUR_MINUTE – Stunden und Minuten
  • DAY_SECOND – Tage, Stunden, Minuten und Sekunden
  • DAY_MINUTE – Tage, Stunden und Minuten
  • DAY_HOUR – Tage und Stunden
  • YEAR_MONTH – Jahre und Monate.

ADDATUM AUSWÄHLEN („28.09.2015 10:30:20“, INTERVALL 1 TAG)
Ergebnis: 29.09.2015 10:30:20

ADDATUM AUSWÄHLEN („28.09.2015 10:30:20“, INTERVALL „3 1:20“ DAY_MINUTE)
Ergebnis: 01.10.2015 11:50:20

Funktion SUBDATE (Datum, INTERVAL-Wert) produziert Subtraktion Werte ab Datum Datum. Beispiel:

UNTERDATUM AUSWÄHLEN („28.09.2015 10:30:20“, INTERVALL 20 STUNDEN)
Ergebnis: 27.09.2015 14:30:20

Funktion PERIOD_ADD(Zeitraum, n) fügt hinzu zur Wertperiode n Monate. Der Periodenwert muss im Format JJJJMM vorliegen (September 2015 wäre beispielsweise 201509). Beispiel:

SELECT PERIOD_ADD (201509, 4)
Ergebnis: 201601

Funktion TIMESTAMPADD(Intervall, n, Datum) ergänzt das Datum Datum Zeitintervall n , deren Werte durch den Intervallparameter angegeben werden. Mögliche Werte für den Intervallparameter:

  • FRAC_SECOND – Mikrosekunden
  • ZWEITE - Sekunden
  • MINUTE - Minuten
  • STUNDE - Stunden
  • TAG – Tage
  • WOCHE - Wochen
  • MONAT - Monate
  • VIERTEL - Blöcke
  • JAHR – Jahre

SELECT TIMESTAMPADD (QUARTER, 1, „2015-09-28“)
Ergebnis: 28.12.2015

Funktion SUBTIME (Datum, Uhrzeit) subtrahiert vom Datum Datum Zeit Zeit. Beispiel:

SELECT SUBTIME("28.09.2015 10:30:20", "50:20:19")
Ergebnis: 26.09.2015 08:10:01

Berechnen des Intervalls zwischen Datumsangaben

Funktion TIMEDIFF(Datum1, Datum2) berechnet die Differenz in Stunden, Minuten und Sekunden zwischen zwei Daten date1 und date2 . Beispiel:

SELECT TIMEDIFF("28.09.2015 10:30:20", "29.09.2015 10:30:20")
Ergebnis: -24:10:00

Funktion DATEDIFF(Datum1, Datum2) rechnet Unterschied in Tagen zwischen zwei Datumsangaben, während Stunden, Minuten und Sekunden bei der Angabe von Datumsangaben ignoriert werden. Beispiel:

SELECT DATEDIFF("28.09.2015 00:00:20", "27.09.2015 23:40:20")
Ergebnis: 1

Mit dieser Funktion lässt sich ganz einfach ermitteln, wie viele Tage seit dem Veröffentlichungsdatum des Artikels vergangen sind:

SELECT DATEDIFF (CURDATE(), date_publication) FROM posts WHERE id_post = 1

Funktion PERIOD_DIFF (Periode1, Periode2) rechnet Unterschied in Monaten zwischen zwei Terminen. Datumsangaben müssen im Format JJJJMM vorliegen. Lassen Sie uns zum Beispiel herausfinden, wie viele Monate von Januar 2015 bis September 2015 vergangen sind:

SELECT PERIOD_DIFF (201509, 201501)
Ergebnis: 9

Funktion TIMESTAMPDIFF(Intervall, Datum1, Datum2) Berechnet die Differenz zwischen den Daten Datum2 und Datum1 in den im Intervallparameter angegebenen Einheiten. In diesem Fall kann das Intervall die folgenden Werte annehmen:

  • FRAC_SECOND – Mikrosekunden
  • ZWEITE - Sekunden
  • MINUTE - Minuten
  • STUNDE - Stunden
  • TAG – Tage
  • WOCHE - Wochen
  • MONAT - Monate
  • VIERTEL - Blöcke
  • JAHR – Jahre

SELECT TIMESTAMPDIFF (STUNDE, „2015-09-28 10:30:20“, „2015-09-28 19:50:20“)
Ergebnis: 9

Abrufen verschiedener Datums- und Zeitformate und anderer Informationen

Funktion DATUM (Datum/Uhrzeit) kehrt zurück Datum, Abschaltzeit. Beispiel:

DATUM AUSWÄHLEN("28.09.2015 10:30:20")
Ergebnis: 28.09.2015

Funktion ZEIT (Datum/Uhrzeit) kehrt zurück Uhrzeit, Stichtag. Beispiel:

ZEIT WÄHLEN („28.09.2015 10:30:20“)
Ergebnis: 10:30:20

Funktion TIMESTAMP (Datum) kehrt zurück Vollformat im Laufe der Zeit Termine Datum. Beispiel:

ZEITSTEMPEL("28.09.2015")
Ergebnis: 28.09.2015 00:00:00

TAG (Datum) Und DAYOFMONTH (Datum). Synonymfunktionen, die zurückkehren Seriennummer des Tages des Monats. Beispiel:

SELECT DAY("28.09.2015"), DAYOFMONTH("28.09.2015")
Ergebnis: 28 | 28

Funktionen DAYNAME (Datum),DAYOFWEEK (Datum) Und WOCHENTAG (Datum). Die erste Funktion kehrt zurück Name des Wochentags, zweite - Nummer des Wochentags(Zählung von 1 – Sonntag bis 7 – Samstag), die dritte ist auch die Nummer des Wochentags, nur ein weiterer Countdown (Zählung von 0 – Montag bis 6 – Sonntag). Beispiel:

SELECT DAYNAME("28.09.2015"), DAYOFWEEK("28.09.2015"), WEEKDAY("28.09.2015")
Ergebnis: Montag 2 | 0

Funktionen WOCHE (Datum) Und WEEKOFYEAR (Datum/Uhrzeit). Beide Funktionen kehren zurück Wochennummer des Jahres, nur die erste Woche beginnt am Sonntag und die zweite am Montag. Beispiel:

WÄHLEN SIE WOCHE („28.09.2015 10:30:20“), WEEKOFYEAR („28.09.2015 10:30:20“)
Ergebnis: 39 | 40

Funktion Monatsdatum) kehrt zurück numerischer Wert des Monats(von 1 bis 12) und MONTHNAME (Datum) Monatsname. Beispiel:

SELECT MONTH("28.09.2015 10:30:20"), MONTHNAME("28.09.2015 10:30:20")
Ergebnis: 9 | September

Funktion QUARTAL (Datum) kehrt zurück Blocknummer Jahre (von 1 bis 4). Beispiel:

QUARTAL AUSWÄHLEN („28.09.2015 10:30:20“)
Ergebnis: 3

Funktion JAHR (Datum) kehrt zurück Jahreswert(von 1000 bis 9999). Beispiel:

JAHR AUSWÄHLEN („28.09.2015 10:30:20“)
Ergebnis: 2015

Funktion DAYOFYEAR (Datum) kehrt zurück Seriennummer des Tages pro Jahr (von 1 bis 366). Grundierung:

SELECT DAYOFYEAR („28.09.2015 10:30:20“)
Ergebnis: 271

Funktion STUNDE (Datum/Uhrzeit) kehrt zurück Stundenwert(von 0 bis 23). Beispiel:

STUNDE AUSWÄHLEN („28.09.2015 10:30:20“)
Ergebnis: 10

Funktion MINUTE (Datum/Uhrzeit) kehrt zurück Minutenwert(von 0 bis 59). Beispiel:

MINUTE AUSWÄHLEN („28.09.2015 10:30:20“)
Ergebnis: 30

Funktion SECOND (Datum/Uhrzeit) kehrt zurück Sekundenwert(von 0 bis 59). Beispiel:

ZWEITE AUSWÄHLEN („28.09.2015 10:30:20“)
Ergebnis: 20

Funktion EXTRAKT (Typ FROM-Datum) gibt den durch den Typparameter angegebenen Datumsteil zurück. Beispiel:

WÄHLEN SIE AUSZUG (JAHR AB „2015-09-28 10:30:20“), AUSZUG (MONAT AB „2015-09-28 10:30:20“), AUSZUG (TAG AB „2015-09-28 10:30). :20"), AUSZUG (STUNDE AUS „28.09.2015 10:30:20"), AUSZUG (MINUTE AUS „28.09.2015 10:30:20"), AUSZUG (ZWEITER AUS „2015-09- 28 10:30:20")
Ergebnis: 2015 | 9 | 28 | 10 | 30 | 20

Reziproke Funktionen Heutiges Datum) Und FROM_DAYS(n). Erste Wandelt das Datum in die Anzahl der Tage um, seit dem Nulljahr vergangen. Der zweite hingegen akzeptiert Anzahl der Tage, ab dem Jahr Null vergangen und wandelt sie in das aktuelle Datum um. Beispiel:

SELECT TO_DAYS („28.09.2015 10:30:20“), FROM_DAYS (736234)
Ergebnis: 736234 | 28.09.2015

Reziproke Funktionen UNIX_TIMESTAMP (Datum) Und FROM_UNIXTIME(n). Erste Wandelt das Datum in Sekunden um seit dem 1. Januar 1970 verabschiedet. Der zweite hingegen akzeptiert Anzahl der Sekunden, ab 1. Januar 1970 und wandelt sie in das aktuelle Datum um. Beispiel:

SELECT UNIX_TIMESTAMP ("28.09.2015 10:30:20"), FROM_UNIXTIME (1443425420)
Ergebnis: 1443425420 | 28.09.2015 10:30:20

Reziproke Funktionen TIME_TO_SEC (Zeit) Und SEC_TO_TIME(n). Erste wandelt Zeit in Sekunden um, seit Beginn des Tages vergangen. Der zweite hingegen nimmt die Anzahl der Sekunden seit Beginn des Tages und wandelt sie in Zeit um. Beispiel:

SELECT TIME_TO_SEC ("10:30:20"), SEC_TO_TIME (37820)
Ergebnis: 37820 | 10:30:20

Funktion MAKEDATE (Jahr, n) Nimmt das Jahr Jahr und die Zahl des Tages im Jahr n und wandelt sie in ein Datum um. Beispiel.

SQL arbeitet mit Datumsangaben– ist so wichtig, dass Sie bei keinem sinnvollen Projekt auf Kenntnisse der grundlegenden SQL-Operatoren verzichten können. Was auch immer man sagen mag, bei allen Dienstleistungen muss mit der Zeit gearbeitet werden. In der Regel handelt es sich hierbei um die Berechnung von Zeiträumen von einem Datum zum anderen, beispielsweise die Anzeige einer Liste der registrierten Benutzer für ein Jahr, einen Monat, einen Tag, eine Stunde.

Ich möchte eine Reihe von Lösungen für häufige Probleme bei der Arbeit mit Datumsangaben in SQL anbieten, auf die ich selbst jeden Tag stoße. Ich hoffe, dass dies für Sie relevant und nützlich ist.

So erhalten Sie das aktuelle Datum in SQL
WHERE date = CURDATE()
oder eine andere Option
WHERE date = STR_TO_DATE(now(), "%Y-%m-%d")

Fügen Sie in SQL eine Stunde zum Datum hinzu
DATE_ADD("2013-03-30", INTERVALL 1 STUNDE)

Fügen Sie einem Datum in SQL einen Tag hinzu
DATE_ADD("30.03.2013", INTERVALL 1 TAG)
Ebenso können Sie dem aktuellen Datum eine beliebige Anzahl von Tagen hinzufügen.

Fügen Sie einem Datum in SQL einen Monat hinzu
DATE_ADD("30.03.2013", INTERVALL 1 MONAT)
Ebenso können Sie dem aktuellen Datum eine beliebige Anzahl von Monaten hinzufügen.

Holen Sie sich den Tag von gestern in SQL
DATE_ADD(CURDATE(), INTERVAL -1 TAG)
oder
DATE_SUB(CURDATE(), INTERVALL 1 TAG)

Startdatum der aktuellen Woche in SQL abrufen
Dies ist auf den ersten Blick eine der schwierigsten Aufgaben, die jedoch sehr einfach gelöst werden kann
CURDATE()-WEEKDAY(CURDATE());

Erhalten Sie eine Auswahl von diesem Montag bis zum aktuellen Wochentag in SQL

Erhalten Sie in SQL eine Auswahl vom ersten Tag des aktuellen Monats bis zum aktuellen Wochentag
WHERE (Datum ZWISCHEN (CURDATE()-WEEKDAY(CURDATE())) UND CURDATE())

So erhalten Sie das Geburtsdatum des Benutzers in SQL
SELECT Name, Geburt, CURRENT_DATE, (YEAR(CURRENT_DATE)-YEAR(birth)) - (RIGHT(CURRENT_DATE,5)

Suchen Sie in SQL nach allen Benutzern, deren Geburtstag nächsten Monat ist
SELECT Name, Geburt FROM Benutzer WHERE MONTH(birth) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH));
oder eine andere Option
SELECT Name, Geburt FROM Haustier WHERE MONTH(birth) = MOD(MONTH(NOW()), 12) + 1;

Zusätzlich zu den oben genannten Fällen zum Arbeiten mit Datumsangaben in SQL empfehle ich Ihnen, die Dokumentation für die folgenden Operatoren zu lesen:
JETZT()– Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück.
CURDATE()– Gibt das aktuelle Datum zurück.
CURTIME()– Wir geben die aktuelle Uhrzeit zurück.
DATUM()– Besteht aus zwei Teilen Datum und Uhrzeit.
EXTRAKT()– Gibt einen einzelnen Datums-/Uhrzeitwert zurück.
DATE_ADD()– Fügt der Stichprobe die angegebene Anzahl an Tagen/Minuten/Stunden usw. hinzu.
DATE_SUB()– Subtrahieren Sie das angegebene Intervall vom Datum.
DATEDIFF()– Gibt den Zeitwert zwischen zwei Datumsangaben zurück.
DATUMSFORMAT()– Funktion zur unterschiedlichen Ausgabe von Zeitinformationen.

Wie sich herausstellt, ist die Arbeit mit Datumsangaben in SQL nicht so schwierig, und anstatt Zeiträume mit PHP zu berechnen, können Sie dies jetzt bereits in der Phase der Ausführung der SQL-Abfrage tun und die erforderliche Datenauswahl erhalten.

Fortsetzung des Themas:
Linux

Wir studieren die Weboberfläche genauer und bemerken den Abschnitt, in dem sie erstellt werden. Dort können Sie entweder ein Passwort festlegen oder ändern. Wie wir am Beispiel von ASUS sehen, um...