Heim > Datenbank > MySQL-Tutorial > Hauptteil

Detaillierte Erläuterung der MySQL-Datumsfunktionen

小云云
Freigeben: 2018-03-03 10:48:35
Original
1834 Leute haben es durchsucht

MySQL hat als kostenlose relationale Datenbank eine sehr große Benutzerbasis. Dieser Artikel listet die häufig verwendeten Datumsfunktionen und Datumskonvertierungsformatierungsfunktionen in MYSQL auf.

1. WOCHENTAG(Datum)


SELECT DAYOFWEEK(‘2016-01-16') 
SELECT DAYOFWEEK(‘2016-01-16 00:00:00')
Nach dem Login kopieren


-> 7 (表示,记住:星期天=1,星期一=2, ... 星期六=7)
Nach dem Login kopieren

2. WOCHENTAG(Datum)


SELECT WEEKDAY(‘2016-01-16') 
SELECT WEEKDAY(‘2016-01-16 00:00:00')
Nach dem Login kopieren


-> 5 (表示返回date是在一周中的序号,西方日历中通常一周的开始是星期天,并且以0开始计数,所以,记住:0=星期一,1=星期二, ... 5=星期六)
Nach dem Login kopieren

3 , DAYOFMONTH(date)


SELECT DAYOFMONTH(‘2016-01-16') 
SELECT DAYOFMONTH(‘2016-01-16 00:00:00')
Nach dem Login kopieren


-> 16 (表示返回date是当月的第几天,1号就返回1,... ,31号就返回31)
Nach dem Login kopieren

4. DAYOFYEAR(date)


SELECT DAYOFYEAR(‘2016-03-31') 
SELECT DAYOFYEAR(‘2016-03-31 00:00:00')
Nach dem Login kopieren


-> 91 (表示返回date是当年的第几天,01.01返回1,... ,12.31就返回365)
Nach dem Login kopieren

5. MONAT(Datum)


SELECT MONTH(‘2016-01-16') 
SELECT MONTH(‘2016-01-16 00:00:00')
Nach dem Login kopieren


-> 1 (表示返回date是当年的第几月,1月就返回1,... ,12月就返回12)
Nach dem Login kopieren

6. TAGNAME(Datum)


SELECT DAYNAME(‘2016-01-16') 
SELECT DAYNAME(‘2016-01-16 00:00:00')
Nach dem Login kopieren


-> Saturday (表示返回date是周几的英文全称名字)
Nach dem Login kopieren

7. MONATNAME(Datum)


SELECT MONTHNAME(‘2016-01-16') 
SELECT MONTHNAME(‘2016-01-16 00:00:00')
Nach dem Login kopieren


-> January (表示返回date的是当年第几月的英文名字)
Nach dem Login kopieren

8. QUARTAL(Datum)


SELECT QUARTER(‘2016-01-16') 
SELECT QUARTER(‘2016-01-16 00:00:00')
Nach dem Login kopieren


-> 1 (表示返回date的是当年的第几个季度,返回1,2,3,4)
Nach dem Login kopieren

9. WOCHE(Datum, Index)


SELECT WEEK(‘2016-01-03') 
SELECT WEEK(‘2016-01-03', 0) 
SELECT WEEK(‘2016-01-03', 1)
Nach dem Login kopieren


-> 1 (该函数返回date在一年当中的第几周,date(01.03)是周日,默认是以为周日作为一周的第一天,函数在此处返回1可以有两种理解:1、第一周返回0,第二周返回1,.... ,2、以当年的完整周开始计数,第一周返回1,第二周返回2,... ,最后一周返回53)
-> 1 (week()默认index就是0. 所以结果同上)
-> 0 (当index为1时,表示一周的第一天是周一,所以,4号周一才是第二周的开始日)
Nach dem Login kopieren
10 )


SELECT YEAR(‘70-01-16') 
SELECT YEAR(‘2070-01-16') 
SELECT YEAR(‘69-01-16 00:00:00')
Nach dem Login kopieren


Es ist zu beachten, dass dies der Fall ist, wenn die Jahreszahl nur zweistellig ist automatisch abgeschlossen werden Der Mechanismus basiert auf der Standardzeit 1970.01.01 als Grenzwert, >= 70 Abschluss 19, < 70 Abschluss 20
-> 1970 (表示返回date的4位数年份)
-> 2070 
-> 1969
Nach dem Login kopieren

11, STUNDE(Zeit)


SELECT HOUR(‘11:22:33&#39;) 
SELECT HOUR(‘2016-01-16 11:22:33&#39;)
Nach dem Login kopieren


Gibt den Stundenwert des Datums oder der Uhrzeit zurück, Wertebereich (0-23)
-> 11
-> 11
Nach dem Login kopieren

12. MINUTE(Zeit)


SELECT MINUTE(‘11:22:33&#39;) 
SELECT MINUTE(‘2016-01-16 11:44:33&#39;)
Nach dem Login kopieren


Gibt den Minutenwert der Zeit zurück , Wertebereich (0-59)
-> 22
-> 44
Nach dem Login kopieren

13

Gibt den Minutenwert der Zeit zurück, Wertebereich (0-59)

14, PERIOD_ADD(Monat, Add)

SELECT SECOND(‘11:22:33&#39;) 
SELECT SECOND(‘2016-01-16 11:44:22&#39;)
Nach dem Login kopieren


-> 33
-> 22
Nach dem Login kopieren

Diese Funktion gibt das Ergebnis eines zunehmenden oder abnehmenden Monats zurück. Das Monatsformat ist JJJJMM. Die zurückgegebenen Ergebnisse sind alle im JJJJMM-Format. add kann einen negativen Wert übergeben


15, PERIOD_DIFF(monthStart, MonthEnd)

SELECT PERIOD_ADD(1601,2) 
SELECT PERIOD_ADD(191602,3) 
SELECT PERIOD_ADD(191602,-3)
Nach dem Login kopieren


-> 201603
-> 191605
-> 191511
Nach dem Login kopieren


Diese Funktion gibt die Anzahl der Monate zwischen MonthStart und MonthEnd zurück

16, DATE_ADD(Datum, INTERVAL-Nummerntyp), dasselbe wie ADDDATE()

SELECT PERIOD_DIFF(1601,1603) 
SELECT PERIOD_DIFF(191602,191607) 
SELECT PERIOD_DIFF(1916-02,1916-07) 
SELECT PERIOD_DIFF(1602,9002)
Nach dem Login kopieren


-> -2
-> -5
-> 5
-> 312
Nach dem Login kopieren

DATE_ADD() und ADDDATE() geben die Ergebnisse von Datumsoperationen zurück

1 Das Datumsformat kann „15-12-31“ sein, also „15-12-31 23:59:59“ oder „2015-12-31 23:59:59“. , das Datumsformat-Ergebnis wird zurückgegeben. Wenn der Parameter Datum im Datums-/Uhrzeitformat vorliegt, wird das Datums-/Uhrzeitformat-Ergebnis zurückgegeben:

SEKUNDE SEKUNDEN
MINUTE Minuten MINUTES

STUNDE Zeit STUNDEN
SELECT DATE_ADD(“2015-12-31 23:59:59”,INTERVAL 1 SECOND) 
SELECT DATE_ADD(“2015-12-31 23:59:59”,INTERVAL 1 DAY) 
SELECT DATE_ADD(“2015-12-31 23:59:59”,INTERVAL “1:1” MINUTE_SECOND) 
SELECT DATE_ADD(“2016-01-01 00:00:00”,INTERVAL “-1 10” DAY_HOUR)
Nach dem Login kopieren
TAG Tage TAGE

MONAT Monat MONATE
JAHR JAHRE

MINUTE_SECOND Minuten und Sekunden „MINUTES:SECONDS“
-> 2016-01-01 00:00:00
-> 2016-01-01 23:59:59
-> 2016-01-01 00:01:00
-> 2015-12-30 14:00:00
Nach dem Login kopieren
HOUR_MINUTE Stunden und Minuten „HOURS:MINUTES“

DAY_HOUR Tage und Stunden „DAYS HOURS“

YEAR_MONTH Jahre und Monate „YEARS-MONUTES“

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“


3 Darüber hinaus können Sie, wenn Sie keine Funktionen verwenden, auch die Operatoren „+“ und verwenden „-“. Beispiele sind wie folgt:






Rückgabeergebnis:




17. DATE_SUB(date, INTERVAL number type), dasselbe wie SUBDATE()


Die Verwendung ist ähnlich wie DATE_ADD() und ADDDATE(), eines dient der Addition und das andere dient Zur Subtraktion siehe bitte 16 Punkte zur Verwendung.

SELECT “2016-01-01” - INTERVAL 1 SECOND 
SELECT “2016-01-01” - INTERVAL 1 DAY 
SELECT ‘2016-12-31 23:59:59&#39; + INTERVAL 1 SECOND 
SELECT ‘2016-12-31 23:59:59&#39; + INTERVAL “1:1” MINUTE_SECOND
Nach dem Login kopieren

18. TO_DAYS(date)


-> 2015-12-31 23:59:59
-> 2015-12-31
-> 2017-01-01 00:00:00
-> 2017-01-01 00:01:00
Nach dem Login kopieren


Gibt die Gesamtzahl der Tage von 0 n. Chr. bis heute zurück

19, FROM_DAYS(Datum)


SELECT TO_DAYS(‘2016-01-16&#39;) 
SELECT TO_DAYS(‘20160116&#39;) 
SELECT TO_DAYS(‘160116&#39;)
Nach dem Login kopieren


-> 736344
-> 736344
-> 736344
Nach dem Login kopieren

Gibt den DATE-Wert der Anzahl der Tage seit 0 n. Chr. zurück

20. DATE_FORMAT(Datum, Format): Datum gemäß Parametern formatieren.


SELECT FROM_DAYS(367)
Nach dem Login kopieren


-> 0001-01-02
Nach dem Login kopieren

Formatformate werden aufgelistet:

%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 字符% )

TIME_FORMAT(time,format):
具体用法和DATE_FORMAT()类似,但TIME_FORMAT只处理小时、分钟和秒(其余符号产生一个NULL值或0)

21、获取系统当前日期


SELECT CURDATE() 
SELECT CURRENT_DATE()
Nach dem Login kopieren


-> 2016-01-16
-> 2016-01-16
Nach dem Login kopieren

22、获取系统当前时间


SELECT CURTIME() 
SELECT CURRENT_TIME()
Nach dem Login kopieren


-> 17:44:22
-> 17:44:22
Nach dem Login kopieren

23、NOW(),SYSDATE(),CURRENT_TIMESTAMP(),LOCALTIME():获取系统当前日期和时间


SELECT NOW() 
SELECT SYSDATE() 
SELECT CURRENT_TIMESTAMP() 
SELECT CURRENT_TIMESTAMP 
SELECT LOCALTIME() 
SELECT LOCALTIME
Nach dem Login kopieren


-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
Nach dem Login kopieren

24、UNIX_TIMESTAMP(date):获取时间戳


SELECT UNIX_TIMESTAMP() 
SELECT UNIX_TIMESTAMP(‘2016-01-16&#39;) 
SELECT UNIX_TIMESTAMP(‘2016-01-16 23:59:59&#39;)
Nach dem Login kopieren


-> 1452937627
-> 1452873600
-> 1452959999
Nach dem Login kopieren

25、FROM_UNIXTIME(unix_timestamp,format):把时间戳转化成日期时间


SELECT FROM_UNIXTIME(1452959999) 
SELECT FROM_UNIXTIME(1452959999,&#39;%Y-%m-%d %H:%i:%s&#39;)
Nach dem Login kopieren


-> 2016-01-16 23:59:59
-> 2016-01-16 23:59:59
Nach dem Login kopieren

26、SEC_TO_TIME(seconds):把秒数转化成时间


SELECT SEC_TO_TIME(2378)
Nach dem Login kopieren


-> 00:39:38
Nach dem Login kopieren

27、TIME_TO_SEC(time):把时间转化成秒数


SELECT TIME_TO_SEC(‘22:23:00&#39;)
Nach dem Login kopieren


-> 2378
Nach dem Login kopieren

28、ADDTIME(time,times):把times加到time上


SELECT ADDTIME(“2015-12-31 23:59:59”,&#39;01:01:01&#39;)
Nach dem Login kopieren


-> 2016-01-01 01:01:00
Nach dem Login kopieren

29、CONVERT_TZ(date,from_tz ,to_tz ):转换时区


SELECT CONVERT_TZ(‘2004-01-01 12:00:00&#39;,&#39;+00:00&#39;,&#39;+10:00&#39;)
Nach dem Login kopieren


-> 2004-01-01 22:00:00
Nach dem Login kopieren

30、STR_TO_DATE(date,format ):将字符串转成format格式的日期时间


SELECT STR_TO_DATE(‘2015-01-01&#39;, ‘%Y-%m-%d&#39;)
Nach dem Login kopieren


-> 2015-01-01
Nach dem Login kopieren

31、LAST_DAY(date ):获取date当月最后一天的日期


SELECT LAST_DAY(SYSDATE()) 
SELECT LAST_DAY(‘2015-02-02&#39;) 
SELECT LAST_DAY(‘2015-02-02 00:22:33&#39;)
Nach dem Login kopieren


-> 2016-01-31
-> 2015-02-28
-> 2015-02-28
Nach dem Login kopieren

32、MAKEDATE(year ,dayofyear ):根据参数(年份,第多少天)获取日期


SELECT MAKEDATE(2015 ,32)
Nach dem Login kopieren


-> 2015-02-01
Nach dem Login kopieren

33、 MAKETIME(hour ,minute ,second ):根据参数(时,分,秒)获取时间


SELECT MAKETIME(12 ,23 ,34 )
Nach dem Login kopieren


-> 12:23:34
Nach dem Login kopieren

34、YEARWEEK(date):获取日期的年和周


SELECT YEARWEEK(SYSDATE()) 
SELECT YEARWEEK(‘2015-01-10&#39;) 
SELECT YEARWEEK(‘2015-01-10&#39;,1)
Nach dem Login kopieren


-> 201602
-> 201501
-> 201502
Nach dem Login kopieren

35、WEEKOFYEAR(date):获取当日是当年的第几周


SELECT WEEKOFYEAR(SYSDATE()) 
SELECT WEEKOFYEAR(‘2015-01-10&#39;)
Nach dem Login kopieren


-> 2
-> 2
Nach dem Login kopieren

-> 2
-> 2

mysql中常用的几种时间格式转换函数整理如下

1,from_unixtime(timestamp, format):

timestamp为int型时间,如14290450779;format为转换的格式,包含格式如下:

%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
%a abgekürzter Name der Woche (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 Stunden (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 Anzahl der Tage in einer Woche (0=Sonntag…6=Samstag)
%U Woche (0……52), wobei Sonntag der erste Tag der Woche ist
%u Woche (0……52), wobei Montag der erste Tag der Woche ist

2, unix_timestamp(date):

Die Funktion ist genau das Gegenteil von from_unixtime(). Erstere wandelt den Unix-Zeitstempel in eine lesbare Zeit um, während unix_timestamp() die lesbare Zeit in umwandelt ein Unix-Zeitstempel. Dies ist nützlich für die Datums-/Uhrzeitspeicherung. Er wird beim Sortieren nach Zeit verwendet. Beispiel: unix_timestamp('2009-08-06 10:10:40'), Sie erhalten 1249524739.

Wenn unix_timestamp() keine Parameter übergibt, wird die Funktion now() aufgerufen, um automatisch die aktuelle Uhrzeit abzurufen.

3, date_format(date, format):

date_format() konvertiert Datums- oder Datetime-Typwerte in ein beliebiges Zeitformat. In einem allgemeinen Anwendungsszenario verfügt eine Tabelle beispielsweise über ein Feld, das die Aktualisierungszeit angibt und den Datums-/Uhrzeittyp speichert. Bei der Anzeige im Frontend müssen jedoch nur Jahr, Monat und Tag (xxxx-xx-) angezeigt werden. xx). In diesem Fall können Sie die date_format(date,'%Y-%m-%d')-Verarbeitung verwenden, ohne dass eine Programmschleifenverarbeitung im Ergebnissatz erforderlich ist.

Verwandte Empfehlungen:

Häufig verwendete MySQL-Datumsfunktionen

MySQL-Datums- und Zeittypen

PHP-MySQL-Datumsoperationsfunktion_PHP-Tutorial


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der MySQL-Datumsfunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage