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')
-> 7 (表示,记住:星期天=1,星期一=2, ... 星期六=7)
2. WOCHENTAG(Datum)
SELECT WEEKDAY(‘2016-01-16') SELECT WEEKDAY(‘2016-01-16 00:00:00')
-> 5 (表示返回date是在一周中的序号,西方日历中通常一周的开始是星期天,并且以0开始计数,所以,记住:0=星期一,1=星期二, ... 5=星期六)
3 , DAYOFMONTH(date)
SELECT DAYOFMONTH(‘2016-01-16') SELECT DAYOFMONTH(‘2016-01-16 00:00:00')
-> 16 (表示返回date是当月的第几天,1号就返回1,... ,31号就返回31)
4. DAYOFYEAR(date)
SELECT DAYOFYEAR(‘2016-03-31') SELECT DAYOFYEAR(‘2016-03-31 00:00:00')
-> 91 (表示返回date是当年的第几天,01.01返回1,... ,12.31就返回365)
5. MONAT(Datum)
SELECT MONTH(‘2016-01-16') SELECT MONTH(‘2016-01-16 00:00:00')
-> 1 (表示返回date是当年的第几月,1月就返回1,... ,12月就返回12)
6. TAGNAME(Datum)
SELECT DAYNAME(‘2016-01-16') SELECT DAYNAME(‘2016-01-16 00:00:00')
-> Saturday (表示返回date是周几的英文全称名字)
7. MONATNAME(Datum)
SELECT MONTHNAME(‘2016-01-16') SELECT MONTHNAME(‘2016-01-16 00:00:00')
-> January (表示返回date的是当年第几月的英文名字)
8. QUARTAL(Datum)
SELECT QUARTER(‘2016-01-16') SELECT QUARTER(‘2016-01-16 00:00:00')
-> 1 (表示返回date的是当年的第几个季度,返回1,2,3,4)
9. WOCHE(Datum, Index)
SELECT WEEK(‘2016-01-03') SELECT WEEK(‘2016-01-03', 0) SELECT WEEK(‘2016-01-03', 1)
-> 1 (该函数返回date在一年当中的第几周,date(01.03)是周日,默认是以为周日作为一周的第一天,函数在此处返回1可以有两种理解:1、第一周返回0,第二周返回1,.... ,2、以当年的完整周开始计数,第一周返回1,第二周返回2,... ,最后一周返回53) -> 1 (week()默认index就是0. 所以结果同上) -> 0 (当index为1时,表示一周的第一天是周一,所以,4号周一才是第二周的开始日)
SELECT YEAR(‘70-01-16') SELECT YEAR(‘2070-01-16') SELECT YEAR(‘69-01-16 00:00:00')
-> 1970 (表示返回date的4位数年份) -> 2070 -> 1969
SELECT HOUR(‘11:22:33') SELECT HOUR(‘2016-01-16 11:22:33')
-> 11 -> 11
SELECT MINUTE(‘11:22:33') SELECT MINUTE(‘2016-01-16 11:44:33')
-> 22 -> 44
Gibt den Minutenwert der Zeit zurück, Wertebereich (0-59)
14, PERIOD_ADD(Monat, Add)
SELECT SECOND(‘11:22:33') SELECT SECOND(‘2016-01-16 11:44:22')
-> 33 -> 22
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)
-> 201603 -> 191605 -> 191511
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)
-> -2 -> -5 -> 5 -> 312
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
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)
MONAT Monat MONATE
JAHR JAHRE
-> 2016-01-01 00:00:00 -> 2016-01-01 23:59:59 -> 2016-01-01 00:01:00 -> 2015-12-30 14:00:00
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' + INTERVAL 1 SECOND SELECT ‘2016-12-31 23:59:59' + INTERVAL “1:1” MINUTE_SECOND
-> 2015-12-31 23:59:59 -> 2015-12-31 -> 2017-01-01 00:00:00 -> 2017-01-01 00:01:00
19, FROM_DAYS(Datum)
SELECT TO_DAYS(‘2016-01-16') SELECT TO_DAYS(‘20160116') SELECT TO_DAYS(‘160116')
-> 736344 -> 736344 -> 736344
20. DATE_FORMAT(Datum, Format): Datum gemäß Parametern formatieren.
SELECT FROM_DAYS(367)
-> 0001-01-02
%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()
-> 2016-01-16 -> 2016-01-16
22、获取系统当前时间
SELECT CURTIME() SELECT CURRENT_TIME()
-> 17:44:22 -> 17:44:22
23、NOW(),SYSDATE(),CURRENT_TIMESTAMP(),LOCALTIME():获取系统当前日期和时间
SELECT NOW() SELECT SYSDATE() SELECT CURRENT_TIMESTAMP() SELECT CURRENT_TIMESTAMP SELECT LOCALTIME() SELECT LOCALTIME
-> 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
24、UNIX_TIMESTAMP(date):获取时间戳
SELECT UNIX_TIMESTAMP() SELECT UNIX_TIMESTAMP(‘2016-01-16') SELECT UNIX_TIMESTAMP(‘2016-01-16 23:59:59')
-> 1452937627 -> 1452873600 -> 1452959999
25、FROM_UNIXTIME(unix_timestamp,format):把时间戳转化成日期时间
SELECT FROM_UNIXTIME(1452959999) SELECT FROM_UNIXTIME(1452959999,'%Y-%m-%d %H:%i:%s')
-> 2016-01-16 23:59:59 -> 2016-01-16 23:59:59
26、SEC_TO_TIME(seconds):把秒数转化成时间
SELECT SEC_TO_TIME(2378)
-> 00:39:38
27、TIME_TO_SEC(time):把时间转化成秒数
SELECT TIME_TO_SEC(‘22:23:00')
-> 2378
28、ADDTIME(time,times):把times加到time上
SELECT ADDTIME(“2015-12-31 23:59:59”,'01:01:01')
-> 2016-01-01 01:01:00
29、CONVERT_TZ(date,from_tz ,to_tz ):转换时区
SELECT CONVERT_TZ(‘2004-01-01 12:00:00','+00:00','+10:00')
-> 2004-01-01 22:00:00
30、STR_TO_DATE(date,format ):将字符串转成format格式的日期时间
SELECT STR_TO_DATE(‘2015-01-01', ‘%Y-%m-%d')
-> 2015-01-01
31、LAST_DAY(date ):获取date当月最后一天的日期
SELECT LAST_DAY(SYSDATE()) SELECT LAST_DAY(‘2015-02-02') SELECT LAST_DAY(‘2015-02-02 00:22:33')
-> 2016-01-31 -> 2015-02-28 -> 2015-02-28
32、MAKEDATE(year ,dayofyear ):根据参数(年份,第多少天)获取日期
SELECT MAKEDATE(2015 ,32)
-> 2015-02-01
33、 MAKETIME(hour ,minute ,second ):根据参数(时,分,秒)获取时间
SELECT MAKETIME(12 ,23 ,34 )
-> 12:23:34
34、YEARWEEK(date):获取日期的年和周
SELECT YEARWEEK(SYSDATE()) SELECT YEARWEEK(‘2015-01-10') SELECT YEARWEEK(‘2015-01-10',1)
-> 201602 -> 201501 -> 201502
35、WEEKOFYEAR(date):获取当日是当年的第几周
SELECT WEEKOFYEAR(SYSDATE()) SELECT WEEKOFYEAR(‘2015-01-10')
-> 2 -> 2
-> 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
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!