1. MySQL erhält die aktuelle Datums- und Uhrzeitfunktion1.1 Aktuelles Datum + Uhrzeit abrufen (Datum + Uhrzeit) - Funktion: now() mysql> jetzt auswählen(); +---------------------+ | jetzt() | +---------------------+ | 08.08.2008 22:20:46 | +---------------------+ Zusätzlich zur Funktion now(), mit der das aktuelle Datum und die aktuelle Uhrzeit abgerufen werden können, verfügt MySQL auch über die folgenden Funktionen:
Diese Datums- und Zeitfunktionen entsprechen now(). Da die Funktion now() kurz und leicht zu merken ist, wird empfohlen, anstelle der oben aufgeführten Funktionen immer now() zu verwenden. 1.2 Aktuelles Datum + Uhrzeit abrufen (Datum + Uhrzeit) Funktion: sysdate() Die Datums- und Uhrzeitfunktion sysdate() ähnelt now(), mit dem Unterschied, dass now() seinen Wert zu Beginn der Ausführung erhält, während sysdate() seinen Wert dynamisch erhält, wenn die Funktion ausgeführt wird. Schauen Sie sich zum Verständnis das folgende Beispiel an: mysql> wähle jetzt(), sleep(3), jetzt(); +---------------------+----------+---------------------+ | jetzt() | schlaf(3) | jetzt() | +---------------------+----------+---------------------+ | 08.08.2008 22:28:21 | 0 | 08.08.2008 22:28:21 | +---------------------+----------+---------------------+ mysql> wähle sysdate(), sleep(3), sysdate(); +---------------------+----------+---------------------+ | sysdate() | schlafen(3) | sysdate() | +---------------------+----------+---------------------+ | 08.08.2008 22:28:41 | 0 | 08.08.2008 22:28:44 | +---------------------+----------+---------------------+ Es ist ersichtlich, dass, obwohl die Ruhezeit 3 Sekunden beträgt, die von der Funktion now() erhaltenen Zeitwerte gleich sind; die von der Funktion sysdate() erhaltenen Zeitwerte unterscheiden sich jedoch um 3 Sekunden. Das MySQL-Handbuch beschreibt sysdate() wie folgt: Gibt den Zeitpunkt zurück, zu dem die Funktion ausgeführt wird. sysdate() Datums- und Zeitfunktion, wird im Allgemeinen selten verwendet. 2. Holen Sie sich das aktuelle Datum (Datum) Funktion: curdate() mysql> wähle curdate(); +------------+ | kurdate() | +------------+ | 08.08.2008 | +------------+ Unter diesen sind die folgenden beiden Datumsfunktionen gleichwertig mit curdate():
3. Holen Sie sich die aktuelle Zeit (Zeit) Funktion: curtime() mysql> wähle curtime(); +-------------+ | aktuelle Zeit() | +-------------+ | 22:41:30 | +-------------+ Unter diesen sind die folgenden beiden Zeitfunktionen gleichwertig mit curtime():
4. Holen Sie sich die aktuellen UTC-Datums- und Zeitfunktionen: utc_date(), utc_time(), utc_timestamp() mysql> wähle utc_timestamp(), utc_date(), utc_time(), jetzt() +---------------------+------------+------------+---------------------+ | utc_timestamp() | utc_date() | utc_time() | jetzt() | +---------------------+------------+------------+---------------------+ | 08.08.2008 14:47:11 | 08.08.2008 | 14:47:11 | 08.08.2008 22:47:11 | +---------------------+------------+------------+---------------------+ Da unser Land in der Zeitzone East 8 liegt, ist die Ortszeit = UTC-Zeit + 8 Stunden. Die UTC-Zeit ist sehr nützlich, wenn das Geschäft mehrere Länder und Regionen umfasst. 2. MySQL-Funktion zum Extrahieren von Datum und Uhrzeit.1. Wählen Sie verschiedene Teile des Datums und der Uhrzeit aus: Datum, Uhrzeit, Jahr, Quartal, Monat, Tag, Stunde, Minute, Sekunde, Mikrosekunde setze @dt = '2008-09-10 07:15:30.123456'; Datum auswählen(@dt); -- 10.09.2008 Zeit auswählen(@dt); -- 07:15:30.123456 Jahr auswählen(@dt); -- 2008 wähle Quartal(@dt); -- 3 Monat auswählen(@dt); -- 9 Woche auswählen(@dt); -- 36 Tag auswählen(@dt); -- 10 Stunde auswählen(@dt); -- 7 Minute auswählen(@dt); -- 15 wähle Sekunde(@dt); -- 30 Mikrosekunde auswählen(@dt); -- 123456 2. MySQL Extract()-Funktion, die ähnliche Funktionen wie oben ausführen kann: setze @dt = '2008-09-10 07:15:30.123456'; Wählen Sie „Extrahieren (Jahr aus @dt)“ aus. – 2008 wähle Extrakt (Viertel aus @dt); -- 3 wähle Extrakt (Monat aus @dt); -- 9 wähle extrahieren (Woche aus @dt); -- 36 wähle Extrakt (Tag aus @dt); -- 10 wähle Extrakt (Stunde von @dt); -- 7 wähle Extrakt (Minute aus @dt); -- 15 wähle Extrakt (zweite von @dt); -- 30 wähle extrahieren (Mikrosekunde aus @dt); -- 123456 Wählen Sie Extrahieren (Jahr_Monat aus @dt); -- 200809 wähle Extrakt (Tag_Stunde aus @dt); – 1007 wähle Extrakt (Tag_Minute aus @dt); – 100715 wähle extrahieren(Tag_Sekunde aus @dt); -- 10071530 Wählen Sie Extrahieren (Tag_Mikrosekunde aus @dt); -- 10071530123456 wähle Extrakt (Stunde_Minute aus @dt); – 715 wähle extrahieren (Stunde_Sekunde aus @dt); – 71530 Wählen Sie Extrahieren (Stunde_Mikrosekunde aus @dt); -- 71530123456 wähle extrahieren (Minute_Sekunde aus @dt); – 1530 Wählen Sie Extrahieren (Minute_Mikrosekunde aus @dt); -- 1530123456 wähle extrahieren (Sekunde_Mikrosekunde aus @dt); -- 30123456 Die MySQL Extract()-Funktion verfügt über alle Funktionen außer date() und time(). Und hat auch die Funktion zur Auswahl von „Tag_Mikrosekunde“ usw. Beachten Sie, dass wir hier nicht nur den Tag und die Mikrosekunde auswählen, sondern den gesamten Tagesteil des Datums bis hin zum Mikrosekundenteil. Das ist stark genug! Der einzige Nachteil der MySQL Extract()-Funktion besteht darin, dass sie ein paar mehr Tastenanschläge erfordert. 3. MySQL-Tag-von...-Funktionen: dayofweek(), dayofmonth(), dayofyear() Gibt die Position des Datumsparameters in der Woche, im Monat bzw. im Jahr zurück. setze @dt = "08.08.2008"; wähle Wochentag(@dt); -- 6 wähle Tag des Monats(@dt); -- 8 wähle TagdesJahres(@dt); -- 221 Das Datum „08.08.2008“ ist der 6. Tag der Woche (1 = Sonntag, 2 = Montag, …, 7 = Samstag), der 8. Tag des Monats und der 221. Tag des Jahres. 4. MySQL-Woche ... Funktionen: Woche(), WochedesJahres(), Wochentag(), Wochentag(), Jahrwoche() setze @dt = "08.08.2008"; Woche auswählen(@dt); -- 31 Woche auswählen(@dt,3); -- 32 wähle WochedesJahres(@dt); -- 32 wähle Wochentag(@dt); -- 6 Wochentag auswählen(@dt); -- 4 wähle JahrWoche(@dt); -- 200831 Die MySQL-Funktion week() kann zwei Parameter haben, Einzelheiten finden Sie im Handbuch. weekofyear() ist dasselbe wie week(). Beide berechnen die Wochennummer eines Jahres, in der sich ein bestimmter Tag befindet. weekofyear(@dt) entspricht week(@dt,3). Die MySQL-Funktion weekday() ähnelt dayofweek(). Beide geben die Position eines bestimmten Tages in der Woche zurück. Der Unterschied liegt im Bezugsstandard Wochentag: (0 = Montag, 1 = Dienstag, ..., 6 = Sonntag); Wochentag: (1 = Sonntag, 2 = Montag, ..., 7 = Samstag) 5. MySQL-Funktionen zur Rückgabe des Wochentags- und Monatsnamens: dayname(), monthname() setze @dt = "08.08.2008"; select dayname(@dt); -- Freitag wähle Monatsnamen(@dt); -- August Überlegen Sie, wie Sie den chinesischen Namen zurückgeben können? 6. MySQL last_day()-Funktion: Gibt den letzten Tag des Monats zurück. wähle letzten Tag('2008-02-01'); -- 29.02.2008 wähle letzten Tag('2008-08-08'); -- 2008-08-31 Die MySQL-Funktion last_day() ist sehr nützlich. Wenn ich beispielsweise wissen möchte, wie viele Tage der aktuelle Monat hat, kann ich das folgendermaßen berechnen: mysql> wähle jetzt(), Tag(letzter_Tag(jetzt())) als Tage; +---------------------+------+ | jetzt() | Tage | +---------------------+------+ | 09.08.2008 11:45:45 | 31 | +---------------------+------+ 3. MySQL-Datums- und Uhrzeitberechnungsfunktionen1. MySQL fügt einem Datum ein Zeitintervall hinzu: date_add() setze @dt = jetzt(); select date_add(@dt, Intervall 1 Tag); -- 1 Tag hinzufügen select date_add(@dt, Intervall 1 Stunde); -- 1 Stunde hinzufügen Wählen Sie date_add(@dt, Intervall 1 Minute); -- ... Wählen Sie date_add(@dt, Intervall 1 Sekunde); Wählen Sie date_add(@dt, Intervall 1 Mikrosekunde); Wählen Sie date_add(@dt, Intervall 1 Woche); Wählen Sie date_add(@dt, Intervall 1 Monat); Wählen Sie date_add(@dt, Intervall 1 Quartal); Wählen Sie date_add(@dt, Intervall 1 Jahr); Wählen Sie date_add(@dt, Intervall -1 Tag); -- sub 1 Tag Die MySQL-Funktionen adddate() und addtime() können durch date_add() ersetzt werden. Das Folgende ist ein Beispiel für die Implementierung der Funktion addtime() durch date_add(): mysql> setze @dt = '2008-08-09 12:12:33'; MySQL> mysql> select date_add(@dt, Intervall '01:15:30' Stunde_Sekunde); +------------------------------------------------+ | date_add(@dt, Intervall '01:15:30' Stunde_Sekunde) | +------------------------------------------------+ | 09.08.2008 13:28:03 | +------------------------------------------------+ mysql> select date_add(@dt, Intervall '1 01:15:30' Tag_Sekunde); +-------------------------------------------------+ | date_add(@dt, Intervall '1 01:15:30' Tag_Sekunde) | +-------------------------------------------------+ | 10.08.2008 13:28:03 | +-------------------------------------------------+ Die Funktion date_add() fügt @dt jeweils „1 Stunde 15 Minuten 30 Sekunden“ und „1 Tag 1 Stunde 15 Minuten 30 Sekunden“ hinzu. Empfehlung: Verwenden Sie immer die Datetime-Funktion date_add() anstelle von adddate() oder addtime(). 2. MySQL subtrahiert ein Zeitintervall von einem Datum: date_sub() mysql> select date_sub('1998-01-01 00:00:00', Intervall '1 1:1:1' Tag_Sekunde); +----------------------------------------------------------------+ | date_sub('1998-01-01 00:00:00', Intervall '1 1:1:1' Tag_Sekunde) | +----------------------------------------------------------------+ | 30.12.1997 22:58:59 | +----------------------------------------------------------------+ Die MySQL-Datums- und Uhrzeitfunktion date_sub() hat dieselbe Verwendung wie date_add(), deshalb werde ich hier nicht ins Detail gehen. Darüber hinaus gibt es in MySQL zwei Funktionen: subdate() und subtime(). Es wird empfohlen, stattdessen date_sub() zu verwenden. 3. Alternative Datumsfunktionen für MySQL: period_add(P,N), period_diff(P1,P2) Das Format des Funktionsparameters „P“ ist „JJJJMM“ oder „JJMM“, und der zweite Parameter „N“ bedeutet das Addieren oder Subtrahieren von N Monaten. MySQL period_add(P,N): N Monate zu einem Datum addieren/subtrahieren. mysql> wähle period_add(200808,2), period_add(20080808,-2) +----------------------+-------------------------+ | period_add(200808,2) | period_add(20080808,-2) | +----------------------+-------------------------+ | 200810 | 20080806 | +----------------------+-------------------------+ MySQL period_diff(P1,P2): Datum P1-P2, gibt N Monate zurück. mysql> wähle period_diff(200808, 200801); +-----------------------------+ | period_diff(200808, 200801) | +-----------------------------+ | 7 | +-----------------------------+ In MySQL werden diese beiden Datumsfunktionen selten verwendet. 4. MySQL-Datums- und Zeitsubtraktionsfunktionen: datediff(date1,date2), timediff(time1,time2) MySQL datediff(date1,date2): Subtrahieren Sie date1 – date2 von zwei Daten und geben Sie die Anzahl der Tage zurück. Wählen Sie datediff('2008-08-08', '2008-08-01'); -- 7 Wählen Sie Datediff ('01.08.2008', '08.08.2008'); -- -7 MySQL timediff(time1, time2): Subtrahieren Sie time1 – time2 von zwei Daten und geben Sie die Zeitdifferenz zurück. Wählen Sie Zeitdifferenz ('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08 Wählen Sie Zeitdifferenz ('08:08:08', '00:00:00'); -- 08:08:08 Hinweis: Die beiden Parameter der Funktion timediff(time1, time2) müssen vom gleichen Typ sein. IV. MySQL-Datumskonvertierungsfunktion, Zeitkonvertierungsfunktion1. MySQL (Zeit, Sekunden) Konvertierungsfunktionen: time_to_sec(Zeit), sec_to_time(Sekunden) wähle Zeit bis zu Sek.('01:00:05'); -- 3605 wähle Sek._bis_Zeit(3605); -- '01:00:05' 2. MySQL (Datum, Tag) Konvertierungsfunktionen: to_days(Datum), from_days(Tage) wähle heute('0000-00-00'); -- 0 Wählen Sie heute('2008-08-08'); -- 733627 wähle from_days(0); -- '0000-00-00' Wählen Sie from_days(733627); --'2008-08-08' 3. MySQL Str to Date (String zu Datum) Funktion: str_to_date(str, Format) Wählen Sie str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09 Wählen Sie str_to_date('08/09/08', '%m/%d/%y'); – 09.08.2008 Wählen Sie str_to_date('08.09.2008', '%m.%d.%Y'); -- 09.08.2008 Wählen Sie str_to_date('08:09:30', '%h:%i:%s'); -- 08:09:30 Wählen Sie str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30 Wie Sie sehen, kann die Konvertierungsfunktion str_to_date(str,format) einige unordentliche Zeichenfolgen in das Datumsformat konvertieren. Alternativ kann es in Zeit umgewandelt werden. Informationen zum „Format“ finden Sie im MySQL-Handbuch. 4. MySQL Datum/Uhrzeit in Zeichenfolge (Datum/Uhrzeit in Zeichenfolge umgewandelt) Funktionen: date_format(Datum,Format), time_format(Uhrzeit,Format) mysql> wähle Datumsformat('2008-08-08 22:23:00', '%W %M %Y'); +------------------------------------------------+ | Datumsformat('2008-08-08 22:23:00', '%W %M %Y') | +------------------------------------------------+ | Freitag, August 2008 | +------------------------------------------------+ mysql> Datumsformat auswählen('2008-08-08 22:23:01', '%Y%m%d%H%i%s'); +----------------------------------------------------+ | Datumsformat('2008-08-08 22:23:01', '%Y%m%d%H%i%s') | +----------------------------------------------------+ | 20080808222301 | +----------------------------------------------------+ mysql> wähle Zeitformat('22:23:01', '%H.%i.%s'); +-------------------------------------+ | Zeitformat('22:23:01', '%H.%i.%s') | +-------------------------------------+ | 23.22.01 | +-------------------------------------+ MySQL-Datums- und Zeitkonvertierungsfunktionen: date_format(date,format), time_format(time,format) können ein Datum/eine Uhrzeit in verschiedene Zeichenfolgenformate konvertieren. Es handelt sich um eine inverse Transformation der Funktion str_to_date(str,format). 5. MySQL ruft die Zeitformatfunktion für Länder und Regionen ab: get_format() MySQL get_format()-Syntax:
Vollständiges Beispiel für die Verwendung von MySQL get_format(): wähle get_format(Datum,'USA'); -- '%m.%d.%Y' wähle get_format(Datum,'jis') ; -- '%Y-%m-%d' wähle get_format(Datum,'iso'); -- '%Y-%m-%d' wähle get_format(Datum,'eur'); -- '%d.%m.%Y' wähle get_format(Datum,'intern') ; -- '%Y%m%d' wähle get_format(datetime,'usa'); -- '%Y-%m-%d %H.%i.%s' Wählen Sie get_format(datetime,'jis'); -- '%Y-%m-%d %H:%i:%s' wähle get_format(datetime,'iso'); -- '%Y-%m-%d %H:%i:%s' wähle get_format(datetime,'eur'); -- '%Y-%m-%d %H.%i.%s' wähle get_format(datetime,'intern') ; -- '%Y%m%d%H%i%s' wähle get_format(Zeit,'USA'); -- '%h:%i:%s %p' wähle get_format(Zeit,'jis'); -- '%H:%i:%s' wähle get_format(Zeit,'iso'); -- '%H:%i:%s' wähle get_format(Zeit,'eur'); -- '%H.%i.%s' wähle get_format(Zeit,'intern') ; -- '%H%i%s' Die MySQL-Funktion get_format() wird in der Praxis selten verwendet. 6. MySQL makedate(Jahr,TagdesJahres), maketime(Stunde,Minute,Sekunde) wähle Makedate(2001,31); -- '2001-01-31' wähle makedate(2001,32); --'2001-02-01' wähle maketime(12,15,30); -- '12:15:30' 5. MySQL-Zeitstempelfunktion1. MySQL ruft den aktuellen Zeitstempel ab: current_timestamp, current_timestamp() mysql> wähle aktuellen_Zeitstempel, aktuellen_Zeitstempel(); +---------------------+---------------------+ | aktueller_Zeitstempel | aktueller_Zeitstempel() | +---------------------+---------------------+ | 09.08.2008 23:22:24 | 09.08.2008 23:22:24 | +---------------------+---------------------+ 2. MySQL-Konvertierungsfunktion (Unix-Zeitstempel, Datum): unix_timestamp(), unix_timestamp(Datum), from_unixtime(unix_zeitstempel), from_unixtime(Unix_Zeitstempel,Format) Hier ist ein Beispiel: wähle unix_timestamp(); -- 1218290027 Wählen Sie unix_timestamp('2008-08-08'); -- 1218124800 Wählen Sie unix_timestamp('2008-08-08 12:30:00'); -- 1218169800 Wählen Sie from_unixtime(1218290027); --'2008-08-09 21:53:47' Wählen Sie from_unixtime(1218124800); --'2008-08-08 00:00:00' Wählen Sie from_unixtime(1218169800); --'2008-08-08 12:30:00' Wählen Sie from_unixtime (1218169800, '%Y %D %M %h:%i:%s %x'); – '8. August 2008, 12:30:00 2008' 3. MySQL-Zeitstempel-Konvertierungs-, Erhöhungs- und Verringerungsfunktionen: Zeitstempel (Datum) – Datum in Zeitstempel umwandeln Zeitstempel(dt,Zeit) -- dt + Zeit timestampadd(Einheit,Intervall,Datum/Uhrzeit_Ausdruck) -- Zeitstempeldiff(Einheit, Datums-/Uhrzeitausdruck1, Datums-/Uhrzeitausdruck2) -- Siehe den Abschnitt mit den Beispielen: Wählen Sie Zeitstempel ('2008-08-08'); -- 2008-08-08 00:00:00 Wählen Sie Zeitstempel ('2008-08-08 08:00:00', '01:01:01'); -- 2008-08-08 09:01:01 Wählen Sie Zeitstempel ('2008-08-08 08:00:00', '10 01:01:01'); -- 2008-08-18 09:01:01 wähle timestampadd(Tag, 1, '2008-08-08 08:00:00'); -- 2008-08-09 08:00:00 Wählen Sie date_add('2008-08-08 08:00:00', Intervall 1 Tag); -- 2008-08-09 08:00:00 Die MySQL-Funktion timestampadd() ist date_add() ähnlich. wähle Zeitstempeldifferenz(Jahr,'2002-05-01','2001-01-01'); -- -1 wähle Zeitstempeldifferenz(Tag,'2002-05-01','2001-01-01'); -- -485 wähle Zeitstempeldifferenz (Stunde, '2008-08-08 12:00:00', '2008-08-08 00:00:00'); -- -12 Wählen Sie datediff('2008-08-08 12:00:00', '2008-08-01 00:00:00'); -- 7 Die MySQL-Funktion timestampdiff() ist viel leistungsfähiger als datediff(), die nur die Anzahl der Tage zwischen zwei Daten berechnen kann. 6. MySQL-Zeitzonenkonvertierungsfunktionconvert_tz(dt,von_tz,nach_tz) Wählen Sie convert_tz('2008-08-08 12:00:00', '+08:00', '+00:00'); -- 2008-08-08 04:00:00 Die Zeitzonenkonvertierung kann auch über date_add, date_sub und timestampadd erfolgen. Wählen Sie date_add('2008-08-08 12:00:00', Intervall -8 Stunde); -- 2008-08-08 04:00:00 select date_sub('2008-08-08 12:00:00', Intervall 8 Stunden); -- 2008-08-08 04:00:00 wähle timestampadd(Stunde, -8, '2008-08-08 12:00:00'); -- 2008-08-08 04:00:00 ZusammenfassenDies ist das Ende dieses Artikels über MySQL-Datums- und Zeitfunktionen. Weitere Informationen zu MySQL 5.X-Datums- und Zeitfunktionen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Beheben Sie den Fehler während der Verbindungsausnahme in Docker
>>: XHTML-Erste-Schritte-Tutorial: Verwenden des Frame-Tags
Die Methode hasOwnProperty() des Objekts gibt ein...
Vor kurzem musste ich alle Felder einer verknüpft...
Ich glaube, dass das Internet zu einem immer unve...
Detailliertes Download-, Installations- und Konfi...
ffmpeg ist ein sehr leistungsfähiges Tool zur Aud...
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis Hintergrund Serverabhängigkeit...
1. Befehlseinführung Mit „time“ werden die für di...
Vorwort In JavaScript müssen Sie document.querySe...
Überblick Der grundlegende Unterschied zwischen a...
1. Was ist HTML HTML (HyperText Markup Language):...
Discuz! Forum verfügt über zahlreiche Konfiguratio...
Inhaltsverzeichnis 1. Funktionsbindung 2. Mit Par...
Installationsumgebung: CentOS7 64-Bit-Mini-Versio...
Auswirkungen der Hintergrundposition auf die Anze...