Heim  >  Artikel  >  Datenbank  >  Zusammenfassung der MySQL-Datumsfunktion

Zusammenfassung der MySQL-Datumsfunktion

小云云
小云云Original
2017-12-04 11:24:351598Durchsuche

Datums- und Zeitfunktionen beziehen sich auf Funktionen zur Analyse und Verarbeitung von Datums- und Zeitwerten in Formeln. In diesem Artikel teilen wir Ihnen eine Zusammenfassung der MYSQL-Datumsfunktionen mit.

Eine Beschreibung des Wertebereichs jedes Typs und der gültigen Formate zum Angeben von Datums- und Uhrzeitwerten finden Sie unter 7.3.6 Datums- und Uhrzeittypen.

Hier ist ein Beispiel für die Verwendung von Datumsfunktionen. Die folgende Abfrage wählt alle Datensätze aus, deren date_col-Wert innerhalb der letzten 30 Tage liegt:

mysql> >
DAYOFWEEK(date)
Gibt den Wochentagsindex des Datums zurück (1=Sonntag, 2=Montag, ...7=Samstag). Diese Indexwerte entsprechen dem ODBC-Standard.
mysql> select DAYOFWEEK('1998-02-03');
-> 3

WEEKDAY(date)
Gibt den Wochenindex des Datums zurück (0=Montag, 1= Dienstag, …6= Sonntag).
mysql> select WEEKDAY('1997-10-00');
-> 5
mysql> select WEEKDAY('1997-11-05'); > 2

DAYOFMONTH(date)
Gibt den Tag des Monats von date im Bereich von 1 bis 31 zurück.
mysql> select DAYOFMONTH('1998-02-03');
-> 3

DAYOFYEAR(date)
Gibt die Anzahl der Tage im Jahr zwischen dem 1 und 366 innerhalb des Bereichs.
mysql> select DAYOFYEAR('1998-02-03');
-> 34

MONTH(date)
Gibt den Monat des Datums zurück, im Bereich von 1 bis 12.
mysql> select MONTH('1998-02-03');
-> 2

DAYNAME(date)
Gibt den Namen des Wochentags zurück.
mysql> select DAYNAME("1998-02-05");
-> 'Thursday'

MONTHNAME(date)
Gibt den Monatsnamen des Datums zurück.
mysql> select MONTHNAME("1998-02-05");
-> 'Februar'

QUARTER(date)
Gibt das Quartal des Jahres im Datumsbereich zurück 1 bis 4.
mysql> select QUARTER('98-04-01');
-> 2

WOCHE(Datum)
WOCHE(Datum,erste)
für Wo Sonntag der erste Tag der Woche ist, gibt es ein einzelnes Argument, das die Wochennummer des Datums im Bereich von 0 bis 52 zurückgibt. Mit der 2-Argument-Form WEEK() können Sie
angeben, ob die Woche beginnt Sonntag oder Montag. Wenn der zweite Parameter 0 ist, beginnt die Woche am Sonntag, wenn der zweite Parameter 1 ist, beginnt
am Montag.
mysql> select WEEK('1998-02-20');
mysql> select WEEK('1998-02-20');
mysql> select WEEK('1998-02-20',1);
-> 8

YEAR(date)
Gibt das Jahr des Datums zurück, im Bereich von 1000 bis 9999 .
mysql> select YEAR('98-02-03');
-> 1998

HOUR(time)
Gibt die Stunde der Zeit im Bereich von 0 bis 23 zurück.
mysql> select HOUR('10:05:03');
-> 10

MINUTE(time)
Gibt die Minute der Zeit im Bereich von 0 bis 59 zurück.
mysql> select MINUTE('98-02-03 10:05:03');
-> 5

SECOND(time)
Gibt die Anzahl der Sekunden zurück, Der Bereich liegt zwischen 0 und 59.
mysql> select SECOND('10:05:03');
-> 3

PERIOD_ADD(P,N)
Füge N Monate zu Stufe P hinzu (im Format YYMM oder JJJJMM). Gibt den Wert im Format JJJJMM zurück. Beachten Sie, dass der Phasenparameter P kein Datumswert ist.
mysql> select PERIOD_ADD(9801,2);
-> 199803

PERIOD_DIFF(P1,P2)
Gibt die Anzahl der Monate zwischen den Perioden P1 und P2 zurück Im Format JJMM oder JJJJMM. Beachten Sie, dass die Periodenparameter P1 und P2 keine Datumswerte sind.
mysql> select PERIOD_DIFF(9802,199703);
-> 11

DATE_ADD(date,INTERVAL expr type)
 
DATE_SUB(date,INTERVAL expr type)

ADDDATE(date,INTERVAL expr type)

SUBDATE(date,INTERVAL expr type)
Diese Funktionen führen Datumsoperationen durch. Ab MySQL 3.22 sind sie neu. ADDDATE() und SUBDATE() sind Synonyme von DATE_ADD() und DATE_SUB().
In MySQL 3.23 können Sie + und - anstelle von DATE_ADD() und DATE_SUB() verwenden. (siehe Beispiel) date ist ein
DATETIME- oder DATE-Wert, der das Startdatum angibt, expr ist ein Ausdruck, der den Intervallwert angibt, der zum Startdatum addiert oder davon subtrahiert werden soll, expr ist eine Zeichenfolge, die mit Ein „-“-Anfang zeigt ein negatives Intervall an. Typ ist ein Schlüsselwort, das angibt, wie der Ausdruck interpretiert werden soll. Die Funktion EXTRACT(type FROM date) gibt das „Typ“-Intervall ab Datum
zurück. Die folgende Tabelle zeigt, wie die Typ- und Ausdrucksparameter zusammenhängen: Typwert Bedeutung erwartetes Ausdrucksformat
SEKUNDE Sekunden SEKUNDEN
MINUTE Minuten MINUTES
STUNDE Zeit STUNDEN
TAG Tage TAGE
MONAT Monate MONATE
JAHR JAHRE
MINUTE_SECOND Minuten und Sekunden „MINUTES:SECONDS“
HOUR_MINUTE Stunden und Minuten „HOURS:MINUTES“
DAY_HOUR Tage und Stunden „DAYS HOURS“
YEAR_MONTH Jahre und Monate „YEARS- MONTHS "
HOUR_SECOND Stunden, Minuten, "HOURS:MINUTES:SECONDS"
DAY_MINUTE Tage, Stunden, Minuten "DAYS HOURS:MINUTES"
DAY_SECOND Tage, Stunden, Minuten, Sekunden" DAYS HOURS:MINUTES:SECONDS "

MySQL erlaubt jedes Interpunktionstrennzeichen im expr-Format. Zeigt an, dass empfohlene Trennzeichen angezeigt werden. Wenn das Datumsargument ein DATE-Wert ist und Ihre Berechnung nur
istEnthält die Komponenten JAHR, MONAT und TAG (d. h. keine Zeitkomponente) und das Ergebnis ist ein DATE-Wert. Andernfalls ist das Ergebnis ein DATETIME-Wert.

mysql> SELECT "1997-12-31 23:59:59" + INTERVALL 1 SECOND DAY + "1997-12-31"
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND; ",
INTERVAL 1 SECOND);
-> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
INTERVALL 1 TAG);
-> 1998-01-01 23:59:59
MYSQL> " MINUTE_SECOND);
-> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB("1998-01-01 00:00:00",
INTERVAL "1 1:1 :1" DAY_SECOND);
-> 1997-12-30 22:58:59
mysql> ; SELECT DATE_ADD("1998-01-01 00:00:00",
INTERVAL "-1 10" DAY_HOUR);
-> 1997-12-30 14:00:00
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
-> 1997- 12-02
mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");
- > SELECT EXTRACT(YEAR_MONTH FROM "1999-07-03". ");
-> 199907
mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");
-> 20102

Wenn Sie angeben Bei einem zu kurzen Intervallwert (mit Ausnahme des vom Typschlüsselwort erwarteten Intervalls) geht MySQL davon aus, dass Sie den Intervallwert weggelassen haben. Beispiel:
Wenn Sie den Typ DAY_SECOND angeben, wird erwartet, dass der Wert expr Tages-, Stunden-, Minuten- und Sekundenkomponenten enthält. Wenn Sie einen Wert wie „1:10“ angeben,
MySQL geht davon aus, dass die Tages- und Stundenteile fehlen und der Wert Minuten und Sekunden darstellt. Mit anderen Worten, „1:10“ DAY_SECOND wird so interpretiert, dass es „1:10“ MINUTE_SECOND
entspricht, was nicht eindeutig mit der Art und Weise übereinstimmt, wie MySQL den TIME-Wert als Darstellung einer verstrichenen Zeit interpretiert und nicht als Tageszeit. Wenn Sie ein wirklich falsches Datum verwenden,
ist das Ergebnis NULL. Wenn Sie MONTH, YEAR_MONTH oder YEAR erhöhen und das resultierende Datum größer als die maximale Anzahl von Tagen im neuen Monat ist, werden die Tage an die maximale Anzahl von Tagen im neuen Monat angepasst.

mysql> select DATE_ADD('1998-01-30', Intervall 1 Monat);
-> 1998-02-28

Beachten Sie, dass aus dem vorherigen Beispiel das Wort INTERVAL stammt Bei Typschlüsselwörtern wird die Groß-/Kleinschreibung nicht beachtet.
TO_DAYS(date)
Gibt bei einem gegebenen Datum eine Anzahl von Tagen zurück (Anzahl der Tage ab Jahr 0).
mysql> select TO_DAYS(950501);
mysql> select TO_DAYS('1997-10-07'); ) ist nicht für die Verwendung mit Werten vor dem Aufkommen des Gregorianischen Kalenders (1582) vorgesehen.

FROM_DAYS(N)
Gibt bei einer gegebenen Anzahl von Tagen N einen DATE-Wert zurück.
mysql> select FROM_DAYS(729669);
-> '1997-10-07'

TO_DAYS() ist nicht für die Verwendung mit Werten vor dem Erscheinen des Gregorianischen Kalenders gedacht (1582) .

DATE_FORMAT(date,format)
Formatieren Sie den Datumswert gemäß der Formatzeichenfolge. Die folgenden Modifikatoren können in der Formatzeichenfolge verwendet werden: %M Monatsname (Januar...Dezember)
%W Wochenname (Sonntag...Samstag)
%D Tag des Monats mit englischem Präfix (1 , 2., 3. usw.)
%Y Jahr, Zahl, 4 Ziffern
%y Jahr, Zahl, 2 Ziffern
%ein abgekürzter Wochentagname (Sonntag......Sa )
%d Anzahl der Tage im Monat, Zahl (00……31)
%e Anzahl der Tage im Monat, Zahl (0……31)
%m Monat, Zahl (01…) …12)
%c Monat, Zahl (1...12)
%b Abgekürzter Monatsname (Jan...Dez)
%j Anzahl der Tage in einem Jahr (001...366 )
%H Stunde (00...23)
%k Stunden (0…23)
%h Stunden (01…12)
%I Stunden (01…12)
%l Stunden (1…12)
%i Minuten, Zahl (00......59)
%r Zeit, 12 Stunden (hh:mm:ss [AP]M)
% T-Zeit, 24 Stunden (hh:mm:ss)
%S Sekunden (00……59)
%s Sekunden (00……59)
%p AM oder PM
%w Die Anzahl der Tage in einer Woche (0=Sonntag…6=Samstag)
%U Woche (0……52), hier ist Sonntag der erste Tag der Woche
%u Woche (0……52), hier ist Montag der erste Tag der Woche
%% Ein Text „%“.

Alle anderen Zeichen werden ohne Interpretation in das Ergebnis kopiert.

mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
-> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
-> '22:23:00'
mysql> 1997-10-04 22:23:00',
'%D %y %d %m %b %j');
-> >mysql> select DATE_FORMAT('1997-10-04 22:23:00',
'%H %k %I %r %T %S %w'); 10:23:00 PM 22:23:00 00 6'
In MySQL3.23 ist % vor dem Formatmodifikatorzeichen erforderlich. In früheren Versionen von MySQL war % optional.

TIME_FORMAT(time,format)
Dies wird wie die Funktion DATE_FORMAT() oben verwendet, aber die Formatzeichenfolge kann nur die Formatmodifikatoren enthalten, die Stunden, Minuten und Sekunden verarbeiten.
Andere Modifikatoren erzeugen einen NULL-Wert oder 0.
CURDATE()

CURRENT_DATE
Gibt den heutigen Datumswert im Format „JJJJ-MM-TT“ oder JJJJMMTT zurück, je nachdem, ob die Funktion in einem Zeichenfolgen- oder numerischen Kontext verwendet wird.
mysql> select CURDATE();
-> '1997-12-15'
mysql> select CURDATE() )
 
CURRENT_TIME
Gibt den aktuellen Zeitwert im Format „HH:MM:SS“ oder HHMMSS zurück, je nachdem, ob die Funktion in einem Zeichenfolgen- oder numerischen Kontext verwendet wird.
mysql> select CURTIME();
-> '23:50:26'
mysql> select CURTIME() + 0; )

SYSDATE()

CURRENT_TIMESTAMP
Gibt das aktuelle Datum und die aktuelle Uhrzeit im Format „JJJJ-MM-TT HH:MM:SS“ oder JJJJMMTDHHMMSS zurück, je nachdem, ob sich die Funktion in befindet ein Zeichenketten werden immer noch im Zusammenhang mit Zahlen
verwendet.
mysql> select NOW();
-> '1997-12-15'
mysql> select NOW()

UNIX_TIMESTAMP()

UNIX_TIMESTAMP(date)
Wenn ohne Argumente aufgerufen, wird ein Unix-Zeitstempel zurückgegeben (Anzahl der Sekunden seit '1970-01-01 00:00:00' GMT). Wenn UNIX_TIMESTAMP() mit einem Datumsargument
aufgerufen wird, gibt es die Anzahl der Sekunden seit „1970-01-01 00:00:00“ GMT zurück. date kann eine DATE-Zeichenfolge, eine DATETIME
-Zeichenfolge, ein TIMESTAMP oder eine Zahl in Ortszeit im Format JJMMTT oder JJJJMMTT sein.
mysql> select UNIX_TIMESTAMP();
mysql> select UNIX_TIMESTAMP('1997-10-00'); 🎜>Wenn UNIX_TIMESTAMP für eine TIMESTAMP-Spalte verwendet wird, akzeptiert die Funktion den Wert direkt, ohne die implizite „String-to-Unix-Timestamp“-Transformation.

FROM_UNIXTIME(unix_timestamp)
Gibt den durch den Parameter unix_timestamp dargestellten Wert im Format „JJJJ-MM-TT HH:MM:SS“ oder JJJJMMTDHHMMSS zurück, je nachdem, ob sich die Funktion in einer Zeichenfolge befindet
oder in einem numerischen Kontext verwendet.
mysql> select FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
mysql> select FROM_UNIXTIME(875996580)

FROM_UNIX ZEIT (unix_timestamp,format)
Gibt eine Zeichenfolge zurück, die den Unix-Zeitstempel darstellt und gemäß der Formatzeichenfolge formatiert ist. Das Format kann dieselben Modifikatoren enthalten wie die für die Funktion DATE_FORMAT() aufgeführten.
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
'%Y %D %M %h:%s %x');
-> x'

SEC_TO_TIME(seconds)
Gibt den Sekundenparameter zurück, konvertiert in Stunden, Minuten und Sekunden. Der Wert wird in „HH:MM:SS“ oder HHMMSS formatiert, je nachdem, ob die Funktion vorhanden ist eine Zeichenfolge oder wird im Zusammenhang mit Zahlen
verwendet.
mysql> select SEC_TO_TIME(2378)
mysql> select SEC_TO_TIME(2378) TIME_TO_SEC(time)
Gibt den Zeitparameter zurück, konvertiert in Sekunden.
mysql> select TIME_TO_SEC('22:23:00');
mysql> select TIME_TO_SEC('00:39:38'); >

Der obige Inhalt ist eine Zusammenfassung der MYSQL-Datumsfunktionen. Ich hoffe, er kann allen helfen.

Verwandte Empfehlungen:


Datumsfunktionen und flexible Verwendung der Funktionskapselung



Häufig verwendete MySQL-Datumsfunktionen



MYSQL-Datumsfunktionssammlung

Das obige ist der detaillierte Inhalt vonZusammenfassung der MySQL-Datumsfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn