時間日期函數用於處理日期和時間值。例如,擷取當前日期時間、格式化日期時間、計算時間間隔、提取日期時間的特定部分(如年、月、日)等。本文介紹AnalyticDB for MySQL日期和時間函數的用法與樣本。
ADDDATE:返回添加指定時間後的日期。
ADDTIME:返回添加指定時間後的時間。
CONVERT_TZ:轉換時區,從from_tz轉到to_tz給出的時區,並返回結果值。
CURDATE:返回當前日期。
CURTIME:返回目前時間。
DATE:返回日期或日期時間運算式中的日期。
DATE_FORMAT:按照Format指定的格式,將日期時間格式化成字串。
SUBDATE/DATE_SUB:返回Date減去指定INTERVAL間隔後的日期。
DATEDIFF:返回Expr1減去Expr2後的天數。
DAY/DAYOFMONTH:返回Date中的日,取值範圍1~31。
DAYNAME:返回日期對應的工作日的名稱,例如星期一為Monday。
DAYOFWEEK:返回日期對應的工作日索引值。
DAYOFYEAR:返回指定日期是當年的哪一天。
EXTRACT:返回日期或時間的單獨部分,例如年、月、日、小時、分鐘等。
FROM_DAYS:根據指定的天數N,返回對應的DATE值。
FROM_UNIXTIME:返回Unixtime時間戳記。
HOUR:返回時間中的小時。
LAST_DAY:返回日期或者日期時間中對應月份的最後一天。
LOCALTIME/LOCALTIMESTAMP/NOW:返回目前時間戳。
MAKEDATE:按照參數Year和DayOfYear,返回一個日期。
MAKETIME:按照參數Hour、Minute和Second,返回一個時間。
MINUTE:返回時間中的分鐘。
MONTH:返回日期中的月份。
MONTHNAME:返回日期中月份的全名。
PERIOD_ADD:將日期格式的參數P增加N個月。
PERIOD_DIFF:返回P1和P2之間相差的月數。
QUARTER:返回日期在一年中的季度。
SEC_TO_TIME:將Seconds轉換為時間。
SECOND:返回時間中的秒。
STR_TO_DATE:按照指定日期或時間顯示格式,將字串轉換為日期或日期時間類型。
SUBTIME:返回Expr1減去Expr2後的時間。
SYSDATE:擷取系統時間。
TIME:以字串形式返回Expr中的時間。
TIME_FORMAT:按照Format指定的格式,以字串形式顯示時間。
TIME_TO_SEC:返回Time轉換為秒的結果。
TIMEDIFF:返回Expr1減去Expr2後的時間。
TIMESTAMP:返回Expr表示的日期或日期時間。
TIMESTAMPADD:將Interval添加到日期或日期時間運算式datetime_expr中。
TIMESTAMPDIFF:返回日期或日期時間運算式datetime_expr2減去datetime_expr1後的結果。
TO_DAYS:根據給定日期Date,返回自0年開始的天數。
TO_SECONDS:根據給定的Expr,返回自0年開始的秒數。
UNIX_TIMESTAMP:返回自1970-01-01 00:00:00 UTC以來秒數的Unix時間戳記。
UTC_DATE:返回UTC日期。
UTC_TIME:返回UTC時間。
UTC_TIMESTAMP:返回UTC時間戳記。
WEEK:返回日期對應的周數。
WEEKDAY:返回日期對應的工作日。
WEEKOFYEAR:返回日期對應的日曆周。
YEAR:返回日期中的年份。
YEARWEEK:返回日期的年份和星期。
ADDDATE
ADDDATE(date,INTERVAL expr unit)
ADDDATE(expr,days)
參數類型:
adddate(date, INTERVAL expr unit) adddate(timestamp, INTERVAL expr unit) adddate(datetime, INTERVAL expr unit) adddate(varchar, INTERVAL expr unit) adddate(date, varchar) adddate(date, bigint) adddate(datetime, bigint) adddate(datetime, varchar) adddate(timestamp, varchar) adddate(timestamp, bigint) adddate(varchar, bigint) adddate(varchar, varchar)
傳回值類型:DATE。
命令說明:返回添加指定時間後的日期。
unit
可取值為:second
、minute
、hour
、day
、month
、year
、minute_second
、hour_second
、hour_minute
、day_second
、day_minute
、day_hour
、year_month
。unit
預設值為day
。days
、expr
:系統將返回expr
加上days
之後的結果。
樣本:
樣本1
select adddate(date '2022-01-22',interval '3' day);
返回結果如下。
+----------------------------------------------+ | adddate(DATE '2022-01-22', INTERVAL '3' DAY)| +----------------------------------------------+ | 2022-01-25 |
樣本2
select adddate(timestamp '2022-01-22',interval '3' day);
返回結果如下。
+---------------------------------------------------+ | adddate(TIMESTAMP '2022-01-22', INTERVAL '3' DAY)| +---------------------------------------------------+ | 2022-01-25 00:00:00 |
樣本3
select adddate(datetime '2022-01-22',interval '3' day);
返回結果如下。
+--------------------------------------------------+ | adddate(DATETIME '2022-01-22', INTERVAL '3' DAY | +--------------------------------------------------+ | 2022-01-25 00:00:00 |
樣本4
select adddate('2022-01-22',interval '3' day);
返回結果如下。
+-----------------------------------------+ | adddate('2022-01-22', INTERVAL '3' DAY)| +-----------------------------------------+ | 2022-01-25 |
樣本5
select adddate(datetime '2022-01-22',interval '3' second);
返回結果如下。
+-----------------------------------------------------+ | adddate(DATETIME '2022-01-22', INTERVAL '3' SECOND)| +-----------------------------------------------------+ | 2022-01-22 00:00:03 |
樣本6
select adddate(datetime '2022-01-22',interval '3' minute);
返回結果如下。
+-----------------------------------------------------+ | adddate(DATETIME '2022-01-22', INTERVAL '3' MINUTE)| +-----------------------------------------------------+ | 2022-01-22 00:03:00 |
樣本7
select adddate(datetime '2022-01-22',interval '3' hour);
返回結果如下。
+---------------------------------------------------+ | adddate(DATETIME '2022-01-22', INTERVAL '3' HOUR | +---------------------------------------------------+ | 2022-01-22 03:00:00 |
樣本8
select adddate(datetime '2022-01-22',interval '3' month);
返回結果如下。
+----------------------------------------------------+ | adddate(DATETIME '2022-01-22', INTERVAL '3' MONTH)| +----------------------------------------------------+ | 2022-04-22 00:00:00 |
樣本9
select adddate(datetime '2022-01-22',interval '3' year);
返回結果如下。
+---------------------------------------------------+ | adddate(DATETIME '2022-01-22', INTERVAL '3' YEAR)| +---------------------------------------------------+ | 2025-01-22 00:00:00 |
樣本10
select adddate(datetime '2022-01-22',interval '01:01:10' hour_second) as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-22 01:01:10 |
樣本11
select adddate(datetime '2022-01-22',interval '00:10' hour_minute) as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-22 00:10:00 |
樣本12
select adddate(datetime '2022-01-22',interval '1 01:01:10' day_second) as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-23 01:01:10 |
樣本13
select adddate(datetime '2022-01-22',interval '01:10' minute_second) as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-22 00:01:10 |
樣本14
select adddate(datetime '2022-01-22',interval '1 01:01' day_minute) as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-23 01:01:00 |
樣本15
select adddate(datetime '2022-01-22',interval '1 01' day_hour) as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-23 01:00:00 |
樣本16
select adddate(datetime '2022-01-22 12:32:1',interval '2 2' year_month) as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2024-03-22 12:32:01 |
樣本17
select adddate('2022-01-22','3');
返回結果如下。
+---------------------------+ | adddate('2022-01-22', '3')| +---------------------------+ | 2022-01-25 |
樣本18
select adddate('2022-01-22',3);
返回結果如下。
+-------------------------+ | adddate('2022-01-22', 3)| +-------------------------+ | 2022-01-25 |
樣本19
select adddate(datetime '2022-01-22 12:12:32',3);
返回結果如下。
+-------------------------------------------+ | adddate(DATETIME '2022-01-22 12:12:32', 3)| +-------------------------------------------+ | 2022-01-25 12:12:32 |
樣本20
select adddate(datetime '2022-01-22 12:12:32','3');
返回結果如下。
+---------------------------------------------+ | adddate(DATETIME '2022-01-22 12:12:32', '3')| +---------------------------------------------+ | 2022-01-25 12:12:32 |
樣本21
select adddate(timestamp '2022-01-22 12:12:32','3');
返回結果如下。
+----------------------------------------------+ | adddate(TIMESTAMP '2022-01-22 12:12:32', '3')| +----------------------------------------------+ | 2022-01-25 12:12:32 |
樣本22
select adddate(timestamp '2022-01-22 12:12:32',3);
返回結果如下。
+--------------------------------------------+ | adddate(TIMESTAMP '2022-01-22 12:12:32', 3)| +--------------------------------------------+ | 2022-01-25 12:12:32 |
樣本23
select adddate('2022-01-22 12:12:32',3);
返回結果如下。
+----------------------------------+ | adddate('2022-01-22 12:12:32', 3)| +----------------------------------+ | 2022-01-25 12:12:32 |
樣本24
select adddate('2022-01-22 12:12:32','3');
返回結果如下。
+------------------------------------+ | adddate('2022-01-22 12:12:32', '3')| +------------------------------------+ | 2022-01-25 12:12:32 |
ADDTIME
ADDTIME(expr1,expr2)
命令說明:返回添加指定時間後的時間,即返回
expr1
增加expr2
後的結果。參數類型:
addtime(date,varchar) addtime(time,varchar) addtime(datetime,varchar) addtime(timestamp,varchar) addtime(varchar,varchar)
傳回值類型:VARCHAR。
樣本:
樣本1
select addtime(date '2022-01-01','01:01:01');
返回結果如下。
+----------------------------------------+ | addtime(DATE '2022-01-01', '01:01:01') | +----------------------------------------+ | 2022-01-01 01:01:01 |
樣本2
select addtime(time '01:00:00','01:01:01');
返回結果如下。
+--------------------------------------+ | addtime(TIME '01:00:00', '01:01:01') | +--------------------------------------+ | 02:01:01 |
樣本3
select addtime(datetime '2022-01-22 00:00:00','01:01:01');
返回結果如下。
+----------------------------------------------------+ | addtime(DATETIME '2022-01-22 00:00:00', '01:01:01')| +----------------------------------------------------+ | 2022-01-22 01:01:01 |
樣本4
select addtime(timestamp '2022-01-22 00:00:00','01:01:01');
返回結果如下。
+-----------------------------------------------------+ | addtime(TIMESTAMP '2022-01-22 00:00:00', '01:01:01')| +-----------------------------------------------------+ | 2022-01-22 01:01:01 |
樣本5
select addtime('2022-01-22 00:00:00','01:01:01');
返回結果如下。
+-------------------------------------------+ | addtime('2022-01-22 00:00:00', '01:01:01')| +-------------------------------------------+ | 2022-01-22 01:01:01 |
CONVERT_TZ
CONVERT_TZ(dt,from_tz,to_tz)
命令說明:轉換
dt
,從from_tz
轉到to_tz
給出的時區,並返回結果。參數類型:
convert_tz(varchar, varchar, varchar)
傳回值類型:DATETIME。
樣本:
樣本1
select convert_tz('2022-01-01 12:00:00','+00:00','+10:00');
返回結果如下。
+-------------------------------------------------------+ | convert_tz('2022-01-01 12:00:00', '+00:00', '+10:00') | +-------------------------------------------------------+ | 2022-01-01 22:00:00 |
樣本2
select convert_tz('2022-01-01 12:00:00','GMT','MET');
返回結果如下。
+-------------------------------------------------+ | convert_tz('2022-01-01 12:00:00', 'GMT', 'MET') | +-------------------------------------------------+ | 2022-01-01 13:00:00 |
CURDATE
CURDATE()
命令說明:返回當前日期。
傳回值類型:DATE。
樣本:
select curdate;
返回結果如下。
+------------+ | curdate() | +------------+ | 2022-01-01 |
CURTIME
CURTIME()
命令說明:返回目前時間。
傳回值類型:TIME。
樣本:
select curtime();
返回結果如下。
+--------------+ | curtime() | +--------------+ | 14:39:22.109 |
DATE
DATE(expr)
命令說明:返回日期或日期時間運算式中的日期。
參數類型:
date(timestamp) date(datetime) date(varchar)
傳回值類型:DATE。
樣本:
樣本1
select date(timestamp '2022-01-01 01:02:03');
返回結果如下。
+---------------------------------------+ | date(TIMESTAMP '2022-01-01 01:02:03') | +---------------------------------------+ | 2022-01-01 |
樣本2
select date(datetime '2022-01-01 01:02:03');
返回結果如下。
+--------------------------------------+ | date(DATETIME '2022-01-01 01:02:03') | +--------------------------------------+ | 2022-01-01 |
樣本3
select date('2022-01-01 01:02:03');
返回結果如下。
+-----------------------------+ | date('2022-01-01 01:02:03') | +-----------------------------+ | 2022-01-01 |
DATE_FORMAT
DATE_FORMAT(date,format)
命令說明:按照
format
指定的格式,將日期時間格式化成字串。format
格式如下所示。%a
星期的英文縮寫名稱(Sun~Sat)
%b
月份的英文縮寫(Jan~Dec)
%c
月,數字(0~12)
%d
每月的第幾天,數字(00~31)
%e
每月的第幾天,數字(0~31)
%f
微秒(000000~999999)
%H
小時(00~23)
%h
小時(01~12)
%I
小時(01~12)
%i
分鐘,數字(00~59)
%j
一年中的第幾天(001~366)
%k
小時(0~23)
%l
小時(1~12)
%M
月份的英文全稱(January~December)
%m
月,數字(00~12)
%p
AM或PM
%r
時間,12小時制(hh:mm:ss AM或PM)
%S
秒(00~59)
%s
秒(00~59)
%T
時間,24小時(hh:mm:ss)
%v
本周是當年的第幾周,等同於WEEK()模式3; 與%x 使用
說明星期一作為一周的第一天。
%W
星期幾(Sunday~Saturday)
%x
本周所屬年份,四位元; 常與%v一同使用
說明星期一作為一周的第一天。
%Y
年份,數字,四位元
%y
年份,數字,兩位元
%%
%字元
參數類型:
date_format(timestamp, varchar) date_format(varchar, varchar) date_format(datetime, varchar) date_format(date, varchar)
傳回值類型:VARCHAR。
樣本:
樣本1
select date_format(timestamp '2022-01-27 13:23:00', '%W %M %Y')as result;
返回結果如下。
+-----------------------+ | result | +-----------------------+ | Thursday January 2022 |
樣本2
select date_format('2022-01-27 13:23:00', '%W %M %Y')as result;
返回結果如下。
+-----------------------+ | result | +-----------------------+ | Thursday January 2022 |
樣本3
select date_format(datetime '2022-01-27 13:23:00', '%W %M %Y')as result;
返回結果如下。
+-----------------------+ | result | +-----------------------+ | Thursday January 2022 |
樣本4
select date_format(date '2022-01-27', '%W %M %Y')as result;
返回結果如下。
+-----------------------+ | result | +-----------------------+ | Thursday January 2022 |
SUBDATE/DATE_SUB
DATE_SUB(date,INTERVAL expr unit)
命令說明:返回
date
減去指定INTERVAL
間隔後的日期。unit
可取值為:second
、minute
、hour
、day
、month
、year
、minute_second
、hour_second
、hour_minute
、day_second
、day_minute
、day_hour
、year_month
。unit
預設值為day
。參數類型:
subdate(date, INTERVAL expr unit) subdate(timestamp, INTERVAL expr unit) subdate(datetime, INTERVAL expr unit) subdate(varchar, INTERVAL expr unit) subdate(date, bigint) subdate(date, varchar) subdate(datetime, bigint) subdate(datetime, varchar) subdate(timestamp, bigint) subdate(timestamp, varchar) subdate(varchar, bigint) subdate(varchar, varchar)
傳回值類型:DATE。
樣本:
樣本1
select date_sub(date '2022-01-22',interval '3' day);
返回結果如下。
+-----------------------------------------------+ | date_sub(DATE '2022-01-22', INTERVAL '3' DAY)| +-----------------------------------------------+ | 2022-01-19 |
樣本2
select date_sub(timestamp '2022-01-22 00:00:00',interval '3' day)as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-19 00:00:00 |
樣本3
select date_sub(datetime '2022-01-22 00:00:00',interval '3' day)as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-19 00:00:00 |
樣本4
select date_sub('2022-01-22 00:00:00',interval '3' day);
返回結果如下。
+---------------------------------------------------+ | date_sub('2022-01-22 00:00:00', INTERVAL '3' DAY)| +---------------------------------------------------+ | 2022-01-19 00:00:00 |
樣本5
select date_sub('2022-01-22 00:00:00',interval '3' second);
返回結果如下。
+------------------------------------------------------+ | date_sub('2022-01-22 00:00:00', INTERVAL '3' SECOND)| +------------------------------------------------------+ | 2022-01-21 23:59:57 |
樣本6
select date_sub('2022-01-22 00:00:00',interval '3' minute);
返回結果如下。
+------------------------------------------------------+ | date_sub('2022-01-22 00:00:00', INTERVAL '3' MINUTE)| +------------------------------------------------------+ | 2022-01-21 23:57:00 |
樣本7
select date_sub('2022-01-22 00:00:00',interval '3' hour);
返回結果如下。
+----------------------------------------------------+ | date_sub('2022-01-22 00:00:00', INTERVAL '3' HOUR)| +----------------------------------------------------+ | 2022-01-21 21:00:00 |
樣本8
select date_sub('2022-01-22 00:00:00',interval '3' month);
返回結果如下。
+-----------------------------------------------------+ | date_sub('2022-01-22 00:00:00', INTERVAL '3' MONTH)| +-----------------------------------------------------+ | 2021-10-22 00:00:00 |
樣本9
select date_sub('2022-01-22 00:00:00',interval '3' year);
返回結果如下。
+----------------------------------------------------+ | date_sub('2022-01-22 00:00:00', INTERVAL '3' YEAR)| +----------------------------------------------------+ | 2019-01-22 00:00:00 |
樣本10
select date_sub('2022-01-22 00:00:00',interval '01:10' minute_second)as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-21 23:58:50 |
樣本11
select date_sub('2022-01-22 00:00:00',interval '01:01:10' hour_second)as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-21 22:58:50 |
樣本12
select date_sub('2022-01-22 00:00:00',interval '01:01' hour_minute)as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-21 22:59:00 |
樣本13
select date_sub('2022-01-22 00:00:00',interval '1 01:01:10' day_second)as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-20 22:58:50 |
樣本14
select date_sub('2022-01-22 00:00:00',interval '1 01:01' day_minute)as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-20 22:59:00 |
樣本15
select date_sub('2022-01-22 00:00:00',interval '1 01' day_hour)as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-20 23:00:00 |
樣本16
select date_sub('2022-01-22 00:00:00',interval '2 2' year_month)as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2019-11-22 00:00:00 |
樣本17
select date_sub(date '2022-01-22 00:00:00',3);
返回結果如下。
+----------------------------------------+ | date_sub(DATE '2022-01-22 00:00:00', 3)| +----------------------------------------+ | 2022-01-19 |
樣本18
select date_sub(date '2022-01-22 00:00:00','3');
返回結果如下。
+------------------------------------------+ | date_sub(DATE '2022-01-22 00:00:00', '3')| +------------------------------------------+ | 2022-01-19 |
樣本19
select date_sub(datetime '2022-01-22 00:00:00',3);
返回結果如下。
+--------------------------------------------+ | date_sub(DATETIME '2022-01-22 00:00:00', 3)| +--------------------------------------------+ | 2022-01-19 00:00:00 |
樣本20
select date_sub(datetime '2022-01-22 00:00:00','3');
返回結果如下。
+----------------------------------------------+ | date_sub(DATETIME '2022-01-22 00:00:00', '3')| +----------------------------------------------+ | 2022-01-19 00:00:00 |
樣本21
select date_sub(timestamp '2022-01-22 00:00:00',3);
返回結果如下。
+---------------------------------------------+ | date_sub(TIMESTAMP '2022-01-22 00:00:00', 3)| +---------------------------------------------+ | 2022-01-19 00:00:00 |
樣本22
select date_sub(timestamp '2022-01-22 00:00:00','3');
返回結果如下。
+-----------------------------------------------+ | date_sub(TIMESTAMP '2022-01-22 00:00:00', '3')| +-----------------------------------------------+ | 2022-01-19 00:00:00 |
樣本23
select date_sub('2022-01-22 00:00:00',3);
返回結果如下。
+-----------------------------------+ | date_sub('2022-01-22 00:00:00', 3)| +-----------------------------------+ | 2022-01-19 00:00:00 |
樣本24
select date_sub('2022-01-22 00:00:00','3');
返回結果如下。
+-------------------------------------+ | date_sub('2022-01-22 00:00:00', '3')| +-------------------------------------+ | 2022-01-19 00:00:00 |
DATEDIFF
DATEDIFF(expr1,expr2)
命令說明:返回
expr1
減去expr2
後的天數。參數類型:
datediff(varchar, varchar) datediff(datetime, varchar) datediff(varchar, datetime) datediff(datetime, datetime) datediff(varchar, timestamp) datediff(timestamp, timestamp) datediff(timestamp, varchar) datediff(date, date) datediff(date, varchar) datediff(varchar, date)
傳回值類型:BIGINT。
樣本:
樣本1
select datediff('2022-01-22 23:59:59','2022-1-21');
返回結果如下。
+-----------------------------------------------+ | datediff('2022-01-22 23:59:59','2022-1-21') | +-----------------------------------------------+ | 1 |
樣本2
select datediff(datetime '2022-01-22 23:59:59','2022-1-21')as result;
返回結果如下。
+--------+ | result | +--------+ | 1 |
樣本3
select datediff('2022-01-22 23:59:59',datetime '2022-1-21')as result;
返回結果如下。
+--------+ | result | +--------+ | 1 |
樣本4
select datediff(datetime '2022-01-22 23:59:59',datetime '2022-1-21')as result;
返回結果如下。
+--------+ | result | +--------+ | 1 |
樣本5
select datediff('2022-01-22 23:59:59',timestamp '2022-1-21')as result;
返回結果如下。
+--------+ | result | +--------+ | 1 |
樣本6
select datediff(timestamp '2022-01-22 23:59:59',timestamp '2022-1-21')as result;
返回結果如下。
+--------+ | result | +--------+ | 1 |
樣本7
select datediff(timestamp '2022-01-22 23:59:59','2022-1-21')as result;
返回結果如下。
+--------+ | result | +--------+ | 1 |
樣本8
select datediff(date '2022-01-22 23:59:59',date '2022-01-21')as result;
返回結果如下。
+--------+ | result | +--------+ | 1 |
樣本9
select datediff(date '2022-01-22 23:59:59','2022-01-21')as result;
返回結果如下。
+--------+ | result | +--------+ | 1 |
樣本10
select datediff('2022-01-22',date '2021-01-21');
返回結果如下。
+-------------------------------------------+ | datediff('2022-01-22', DATE '2021-01-21') | +-------------------------------------------+ | 366 |
DAY/DAYOFMONTH
DAY(date)
DAYOFMONTH(date)
命令說明:返回
date
中的日,取值範圍[1,31]
。參數類型:
dayofmonth(timestamp) dayofmonth(datetime) dayofmonth(date) dayofmonth(time) dayofmonth(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select dayofmonth(timestamp '2022-01-22 12:23:09');
返回結果如下。
+---------------------------------------------+ | dayofmonth(TIMESTAMP '2022-01-22 12:23:09') | +---------------------------------------------+ | 22 |
樣本2
select dayofmonth(date '2022-01-22');
返回結果如下。
+-------------------------------+ | dayofmonth(DATE '2022-01-22') | +-------------------------------+ | 22 |
樣本3
select dayofmonth(time '17:01:10');
返回當前日期,結果如下。
+-----------------------------+ | dayofmonth(TIME '17:01:10') | +-----------------------------+ | 22 |
樣本4
select dayofmonth(datetime '2022-01-22 00:00:00');
返回結果如下。
+--------------------------------------------+ | dayofmonth(DATETIME '2022-01-22 00:00:00') | +--------------------------------------------+ | 22 |
樣本5
select day('2022-01-22');
返回結果如下。
+-------------------+ | day('2022-01-22') | +-------------------+ | 22 |
DAYNAME
DAYNAME(date)
命令說明:返回日期對應的星期幾的名稱,例如星期一為
Monday
。參數類型:
dayname(timestamp) dayname(datetime) dayname(date) dayname(varchar)
傳回值類型:VARCHAR。
樣本:
樣本1
select dayname(timestamp '2022-01-22 00:00:00');
返回結果如下。
+------------------------------------------+ | dayname(TIMESTAMP '2022-01-22 00:00:00') | +------------------------------------------+ | Saturday |
樣本2
select dayname(datetime '2022-01-22 00:00:00');
返回結果如下。
+-----------------------------------------+ | dayname(DATETIME '2022-01-22 00:00:00') | +-----------------------------------------+ | Saturday |
樣本3
select dayname(date '2022-01-22');
返回結果如下。
+----------------------------+ | dayname(DATE '2022-01-22') | +----------------------------+ | Saturday |
樣本4
select dayname('2022-01-22');
返回結果如下。
+-----------------------+ | dayname('2022-01-22') | +-----------------------+ | Saturday |
DAYOFWEEK
DAYOFWEEK(date)
命令說明:返回日期對應的星期幾索引值,即星期日為
1
,星期一為2
,星期六為7
。參數類型:
dayofweek(timestamp) dayofweek(datetime) dayofweek(date) dayofweek(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select dayofweek(timestamp '2022-01-22 00:00:00');
返回結果如下。
+--------------------------------------------+ | dayofweek(TIMESTAMP '2022-01-22 00:00:00') | +--------------------------------------------+ | 7 |
樣本2
select dayofweek(datetime '2022-01-22 00:00:00');
返回結果如下。
+-------------------------------------------+ | dayofweek(DATETIME '2022-01-22 00:00:00') | +-------------------------------------------+ | 7 |
樣本3
select dayofweek(date '2022-01-22');
返回結果如下。
+------------------------------+ | dayofweek(DATE '2022-01-22') | +------------------------------+ | 7 |
樣本4
select dayofweek('2022-01-22');
返回結果如下。
+-------------------------+ | dayofweek('2022-01-22') | +-------------------------+ | 7 |
DAYOFYEAR
DAYOFYEAR(date)
命令說明:返回指定日期是當年的第幾天,傳回值範圍為
[1,366]
。參數類型:
dayofyear(timestamp) dayofyear(datetime) dayofyear(date) dayofyear(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select dayofyear(timestamp '2022-02-01 00:12:12');
返回結果如下。
+--------------------------------------------+ | dayofyear(TIMESTAMP '2022-02-01 00:12:12') | +--------------------------------------------+ | 32 |
樣本2
select dayofyear(datetime '2022-02-01 00:12:12');
返回結果如下。
+-------------------------------------------+ | dayofyear(DATETIME '2022-02-01 00:12:12') | +-------------------------------------------+ | 32 |
樣本3
select dayofyear(date '2022-02-01');
返回結果如下。
+------------------------------+ | dayofyear(DATE '2022-02-01') | +------------------------------+ | 32 |
樣本4
select dayofyear('2022-02-01');
返回結果如下。
+-------------------------+ | dayofyear('2022-02-01') | +-------------------------+ | 32 |
EXTRACT
EXTRACT(unit FROM date)
命令說明:返回日期或時間的單獨部分,由
unit
指定,比如年、月、日、小時、分鐘等。unit
可取值為:second
、minute
、hour
、day
、month
、year
、minute_second
、hour_second
、hour_minute
、day_second
、day_minute
、day_hour
、year_month
。支援抽取的入參時間類型:VARCHAR、TIMESTAMP、DATETIME、TIME。
傳回值類型:BIGINT。
樣本:
樣本1
select extract(second from '2022-01-22 00:12:34');
返回結果如下。
+-------+ | _col0 | +-------+ | 34 |
樣本2
select extract(minute from '2022-01-22 00:12:34');
返回結果如下。
+-------+ | _col0 | +-------+ | 12 |
樣本3
select extract(hour from '2022-01-22 00:12:34');
返回結果如下。
+-------+ | _col0 | +-------+ | 0 |
樣本4
select extract(day from '2022-01-22 00:12:34');
返回結果如下。
+-------+ | _col0 | +-------+ | 22 |
樣本5
select extract(month from '2022-01-22 00:12:34');
返回結果如下。
+-------+ | _col0 | +-------+ | 1 |
樣本6
select extract(year from timestamp '2022-01-22');
返回結果如下。
+-------+ | _col0 | +-------+ | 2022 |
樣本7
select extract(year from datetime '2022-01-22');
返回結果如下。
+-------+ | _col0 | +-------+ | 2022 |
樣本8
select extract(year from time '15:23:22');
返回當前的年份,結果如下。
+-------+ | _col0 | +-------+ | 2022 |
樣本9
select extract(minute_second from '2022-01-22 00:12:34');
返回結果如下。
+-------+ | _col0 | +-------+ | 1234 |
樣本10
select extract(hour_second from '2022-01-22 12:12:34');
返回結果如下。
+--------+ | _col0 | +--------+ | 121234 |
樣本11
select extract(hour_minute from '2022-01-22 12:12:34');
返回結果如下。
+-------+ | _col0 | +-------+ | 1212 |
樣本12
select extract(day_second from '2022-01-22 12:12:34');
返回結果如下。
+----------+ | _col0 | +----------+ | 22121234 |
樣本13
select extract(day_minute from '2022-01-22 00:12:34');
返回結果如下。
+--------+ | _col0 | +--------+ | 220012 |
樣本14
select extract(day_hour from '2022-01-22 12:12:34');
返回結果如下。
+-------+ | _col0 | +-------+ | 2212 |
樣本15
select extract(year_month from '2022-01-22 00:12:34');
返回結果如下。
+--------+ | _col0 | +--------+ | 202201 |
FROM_DAYS
FROM_DAYS(N)
命令說明:根據指定的天數
N
,返回對應的DATE
值。參數類型:
from_days(varchar) from_days(bigint)
傳回值類型:DATE。
樣本:
樣本1
select from_days(738565);
返回結果如下。
+-------------------+ | from_days(738565) | +-------------------+ | 2022-02-14 |
樣本2
select from_days('738565');
返回結果如下。
+---------------------+ | from_days('738565') | +---------------------+ | 2022-02-14 |
FROM_UNIXTIME
FROM_UNIXTIME(unix_timestamp[,format])
命令說明:根據
unix
時間戳記,返回符合format
格式的值。format
遵從DATE_FORMAT函數中的format
格式。參數類型:
from_unixtime(varchar, varchar) from_unixtime(varchar) from_unixtime(double, varchar) from_unixtime(double)
傳回值類型:DATETIME。
樣本:
樣本1
select from_unixtime('1647738565','%Y %M %h:%i:%s %x');
返回結果如下。
+--------------------------------------------------+ | from_unixtime('1647738565', '%Y %M %h:%i:%s %x') | +--------------------------------------------------+ | 2022 March 09:09:25 2022 |
樣本2
select from_unixtime('1647738565');
返回結果如下。
+-----------------------------+ | from_unixtime('1647738565') | +-----------------------------+ | 2022-03-20 09:09:25 |
樣本3
select from_unixtime(1647738456);
返回結果如下。
+---------------------------+ | from_unixtime(1647738456) | +---------------------------+ | 2022-03-20 09:07:36 |
樣本4
select from_unixtime(1647738456,'%Y %M %h:%i:%s %x');
返回結果如下。
+------------------------------------------------+ | from_unixtime(1647738456, '%Y %M %h:%i:%s %x') | +------------------------------------------------+ | 2022 March 09:07:36 2022 |
HOUR
HOUR(time)
命令說明:返回時間中的小時。
參數類型:
hour(timestamp) hour(datetime) hour(date) hour(time) hour(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select hour(timestamp '2022-01-22 10:05:03');
返回結果如下。
+---------------------------------------+ | hour(TIMESTAMP '2022-01-22 10:05:03') | +---------------------------------------+ | 10 |
樣本2
select hour(datetime '2022-01-22 10:05:03');
返回結果如下。
+--------------------------------------+ | hour(DATETIME '2022-01-22 10:05:03') | +--------------------------------------+ | 10 |
樣本3
select hour(date '2022-01-22');
返回結果如下。
+-------------------------+ | hour(DATE '2022-01-22') | +-------------------------+ | 0 |
樣本4
select hour(time '10:05:03');
返回結果如下。
+-----------------------+ | hour(TIME '10:05:03') | +-----------------------+ | 10 |
樣本5
select hour('10:05:03');
返回結果如下。
+------------------+ | hour('10:05:03') | +------------------+ | 10 |
LAST_DAY
LAST_DAY(date)
命令說明:返回日期或者日期時間中對應月份的最後一天。
參數類型:
last_day(varchar) last_day(timestamp) last_day(datetime) last_day(date)
傳回值類型:DATE。
樣本:
樣本1
select last_day('2022-01-22');
返回結果如下。
+------------------------+ | last_day('2022-01-22') | +------------------------+ | 2022-01-31 |
樣本2
select last_day(timestamp '2022-01-22 12:12:12');
返回結果如下。
+-------------------------------------------+ | last_day(TIMESTAMP '2022-01-22 12:12:12') | +-------------------------------------------+ | 2022-01-31 |
樣本3
select last_day(datetime '2022-01-22 12:12:12');
返回結果如下。
+------------------------------------------+ | last_day(DATETIME '2022-01-22 12:12:12') | +------------------------------------------+ | 2022-01-31 |
樣本4
select last_day(date '2022-01-22');
返回結果如下。
+-----------------------------+ | last_day(DATE '2022-01-22') | +-----------------------------+ | 2022-01-31 |
LOCALTIME/LOCALTIMESTAMP/NOW
localtime
localtime()
localtimestamp
localtimestamp()
now()
命令說明:返回目前時間戳。
傳回值類型:DATETIME。
樣本:
樣本1
select now();
返回結果如下。
+---------------------+ | now() | +---------------------+ | 2022-01-22 16:28:37 |
樣本2
select localtime;
返回結果如下。
+---------------------+ | localtime() | +---------------------+ | 2022-01-22 16:28:37 |
樣本3
select localtime();
返回結果如下。
+---------------------+ | localtime() | +---------------------+ | 2022-01-22 16:28:37 |
樣本4
select localtimestamp;
返回結果如下。
+---------------------+ | localtimestamp() | +---------------------+ | 2022-01-22 17:28:37 |
樣本5
select localtimestamp();
返回結果如下。
+---------------------+ | localtimestamp() | +---------------------+ | 2022-01-22 17:38:13 |
MAKEDATE
MAKEDATE(year,dayofyear)
命令說明:按照參數
year
和dayofyear
,返回一個日期。參數類型:
makedate(bigint, bigint) makedate(varchar, varchar)
傳回值類型:DATE。
樣本:
樣本1
select makedate(2022,31), makedate(2022,32);
返回結果如下。
+--------------------+--------------------+ | makedate(2022, 31) | makedate(2022, 32) | +--------------------+--------------------+ | 2022-01-31 | 2022-02-01 |
樣本2
select makedate('2022','31'), makedate('2022','32');
返回結果如下。
+------------------------+------------------------+ | makedate('2022', '31') | makedate('2022', '32') | +------------------------+------------------------+ | 2022-01-31 | 2022-02-01 |
MAKETIME
MAKETIME(hour,minute,second)
命令說明:按照參數
hour
、minute
和second
,返回一個時間。參數類型:
maketime(bigint, bigint, bigint) maketime(varchar, varchar, varchar)
傳回值類型:TIME。
樣本:
樣本1
select maketime(12,15,30);
返回結果如下。
+----------------------+ | maketime(12, 15, 30) | +----------------------+ | 12:15:30 |
樣本2
select maketime('12','15','30');
返回結果如下。
+----------------------------+ | maketime('12', '15', '30') | +----------------------------+ | 12:15:30 |
MINUTE
MINUTE(time)
命令說明:返回時間中的分鐘。
參數類型:
minute(timestamp) minute(datetime) minute(date) minute(time) minute(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select minute(timestamp '2022-02-03 10:05:03');
返回結果如下。
+-----------------------------------------+ | minute(TIMESTAMP '2022-02-03 10:05:03') | +-----------------------------------------+ | 5 |
樣本2
select minute(datetime '2022-02-03 10:05:03');
返回結果如下。
+----------------------------------------+ | minute(DATETIME '2022-02-03 10:05:03') | +----------------------------------------+ | 5 |
樣本3
select minute(date '2022-02-03');
返回結果如下。
+---------------------------+ | minute(DATE '2022-02-03') | +---------------------------+ | 0 |
樣本4
select minute(time '12:12:12');
返回結果如下。
+-------------------------+ | minute(TIME '12:12:12') | +-------------------------+ | 12 |
樣本5
select minute('2022-02-03 10:05:03');
返回結果如下。
+-------------------------------+ | minute('2022-02-03 10:05:03') | +-------------------------------+ | 5 |
MONTH
MONTH(date)
命令說明:返回日期中的月份。
參數類型:
month(timestamp) month(datetime) month(date) month(time) month(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select month(timestamp '2022-02-03 00:00:00');
返回結果如下。
+----------------------------------------+ | month(TIMESTAMP '2022-02-03 00:00:00') | +----------------------------------------+ | 2 |
樣本2
select month(datetime '2022-02-03 00:00:00');
返回結果如下。
+---------------------------------------+ | month(DATETIME '2022-02-03 00:00:00') | +---------------------------------------+ | 2 |
樣本3
select month(date '2022-02-03');
返回結果如下。
+--------------------------+ | month(DATE '2022-02-03') | +--------------------------+ | 2 |
樣本4
MONTH函數也可以返回SQL執行時的月份,例如以下SQL是2021年5月執行的, 返回結果為5。
select month(time '12:12:12');
返回結果如下。
+------------------------+ | month(TIME '12:12:12') | +------------------------+ | 5 |
樣本5
select month('2022-02-03');
返回結果如下。
+---------------------+ | month('2022-02-03') | +---------------------+ | 2 |
MONTHNAME
MONTHNAME(date)
命令說明:返回日期中月份的英文全稱。
參數類型:
monthname(timestamp) monthname(datetime) monthname(date) monthname(varchar)
傳回值類型:VARCHAR。
樣本:
樣本1
select monthname(timestamp '2022-02-03 00:00:00');
返回結果如下。
+--------------------------------------------+ | monthname(TIMESTAMP '2022-02-03 00:00:00') | +--------------------------------------------+ | February |
樣本2
select monthname(datetime '2022-02-03 00:00:00');
返回結果如下。
+-------------------------------------------+ | monthname(DATETIME '2022-02-03 00:00:00') | +-------------------------------------------+ | February |
樣本3
select monthname(date '2022-02-03');
返回結果如下。
+------------------------------+ | monthname(DATE '2022-02-03') | +------------------------------+ | February |
樣本4
select monthname('2022-02-03');
+-------------------------+ | monthname('2022-02-03') | +-------------------------+ | February |
PERIOD_ADD
PERIOD_ADD(P,N)
命令說明:將日期格式的參數
P
增加N
個月。參數類型:
period_add(bigint, bigint) period_add(varchar, varchar) period_add(varchar, bigint)
傳回值類型:BIGINT。
樣本:
樣本1
select period_add(202201,2);
返回結果如下。
+-----------------------+ | period_add(202201, 2) | +-----------------------+ | 202203 |
樣本2
select period_add('202201','2');
返回結果如下。
+---------------------------+ | period_add('202201', '2') | +---------------------------+ | 202203 |
樣本3
select period_add('202201',2);
返回結果如下。
+-------------------------+ | period_add('202201', 2) | +-------------------------+ | 202203 |
PERIOD_DIFF
PERIOD_DIFF(P1,P2)
命令說明:返回
P1
和P2
之間相差的月數。參數類型:
period_diff(bigint, bigint) period_diff(varchar, varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select period_diff(202202,202103);
返回結果如下。
+----------------------------+ | period_diff(202202,202103) | +----------------------------+ | 11 |
樣本2
select period_diff('202202','202103');
返回結果如下。
+---------------------------------+ | period_diff('202202', '202103') | +---------------------------------+ | 11 |
QUARTER
QUARTER(date)
命令說明:返回日期在一年中的季度,取值範圍為
[1,4]
。參數類型:
quarter(datetime) quarter(varchar) quarter(timestamp) quarter(date)
傳回值類型:BIGINT。
樣本:
樣本1
select quarter(datetime '2022-04-01 12:12:12');
返回結果如下。
+-----------------------------------------+ | quarter(DATETIME '2022-04-01 12:12:12') | +-----------------------------------------+ | 2 |
樣本2
select quarter('2022-04-01');
返回結果如下。
+-----------------------+ | quarter('2022-04-01') | +-----------------------+ | 2 |
樣本3
select quarter(timestamp '2022-04-01 12:12:12');
返回結果如下。
+------------------------------------------+ | quarter(TIMESTAMP '2022-04-01 12:12:12') | +------------------------------------------+ | 2 |
樣本4
select quarter(date '2022-04-01');
返回結果如下。
+----------------------------+ | quarter(DATE '2022-04-01') | +----------------------------+ | 2 |
SEC_TO_TIME
SEC_TO_TIME(seconds)
命令說明:將
seconds
轉換為時間。參數類型
sec_to_time(bigint) sec_to_time(varchar)
傳回值類型:TIME。
樣本:
樣本1
select sec_to_time(2378);
返回結果如下。
+-------------------+ | sec_to_time(2378) | +-------------------+ | 00:39:38 |
樣本2
select sec_to_time('2378');
返回結果如下。
+---------------------+ | sec_to_time('2378') | +---------------------+ | 00:39:38 |
SECOND
SECOND(time)
命令說明:返回時間中的秒,範圍為
[0,59]
。參數類型:
second(timestamp) second(datetime) second(date) second(time) second(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select second(timestamp '2022-03-12 12:13:14');
返回結果如下。
+-----------------------------------------+ | second(TIMESTAMP '2022-03-12 12:13:14') | +-----------------------------------------+ | 14 |
樣本2
select second(datetime '2022-03-12 12:13:14');
返回結果如下。
+----------------------------------------+ | second(DATETIME '2022-03-12 12:13:14') | +----------------------------------------+ | 14 |
樣本3
select second(date '2022-03-12');
返回結果如下。
+---------------------------+ | second(DATE '2022-03-12') | +---------------------------+ | 0 |
樣本3
select second(time '12:13:14');
返回結果如下。
+-------------------------+ | second(TIME '12:13:14') | +-------------------------+ | 14 |
樣本4
select second('12:12:23');
返回結果如下。
+--------------------+ | second('12:12:23') | +--------------------+ | 23 |
STR_TO_DATE
STR_TO_DATE(str,format)
命令說明:按照指定日期或時間顯示格式,將字串轉換為日期或日期時間類型。
format
遵從DATE_FORMAT函數中的format
格式。參數類型:
str_to_date(varchar, varchar)
傳回值類型:DATETIME。
樣本:
樣本1
select str_to_date('2022-01-06 10:20:30','%Y-%m-%d %H:%i:%s') as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-06 10:20:30 |
SUBTIME
SUBTIME(expr1,expr2)
命令說明:返回
expr1
減去expr2
後的時間。參數類型:
subtime(date, varchar) subtime(datetime, varchar) subtime(timestamp, varchar) subtime(time, varchar) subtime(varchar, varchar)
傳回值類型:DATETIME。
樣本:
樣本1
select subtime(date '2022-10-31','0:1:1');
返回結果如下。
+-------------------------------------+ | subtime(DATE '2022-10-31', '0:1:1') | +-------------------------------------+ | 2022-10-30 23:58:59 |
樣本2
select subtime(datetime '2022-10-31 12:12:12','0:1:1');
返回結果如下。
+--------------------------------------------------+ | subtime(DATETIME '2022-10-31 12:12:12', '0:1:1') | +--------------------------------------------------+ | 2022-10-31 12:11:11 |
樣本3
select subtime(timestamp '2022-10-31 12:12:12','0:1:1');
返回結果如下。
+---------------------------------------------------+ | subtime(TIMESTAMP '2022-10-31 12:12:12', '0:1:1') | +---------------------------------------------------+ | 2022-10-31 12:11:11 |
樣本4
select subtime(time '12:12:12','0:1:1');
返回結果如下。
+-----------------------------------+ | subtime(TIME '12:12:12', '0:1:1') | +-----------------------------------+ | 12:11:11 | +-----------------------------------+
樣本5
select subtime('2022-10-31 23:59:59','0:1:1');
返回結果如下。
+-----------------------------------------+ | subtime('2022-10-31 23:59:59', '0:1:1') | +-----------------------------------------+ | 2022-10-31 23:58:58 |
SYSDATE
SYSDATE()
命令說明:擷取系統時間。
傳回值類型:DATETIME。
樣本:
樣本1
select sysdate();
返回結果如下。
+---------------------+ | sysdate() | +---------------------+ | 2022-02-26 00:47:21 |
TIME
TIME(expr)
命令說明:以字串形式返回
expr
中的時間。參數類型:
time(varchar) time(datetime) time(timestamp)
傳回值類型:VARCHAR。
樣本:
樣本1
select time('2022-01-31 01:02:03');
返回結果如下。
+-----------------------------+ | time('2022-01-31 01:02:03') | +-----------------------------+ | 01:02:03 |
樣本2
select time(datetime '2022-01-31 01:02:03');
返回結果如下。
+--------------------------------------+ | time(DATETIME '2022-01-31 01:02:03') | +--------------------------------------+ | 01:02:03 |
樣本3
select time(timestamp '2022-01-31 01:02:03');
返回結果如下。
+---------------------------------------+ | time(TIMESTAMP '2022-01-31 01:02:03') | +---------------------------------------+ | 01:02:03 |
TIME_FORMAT
TIME_FORMAT(time,format)
命令說明:按照
format
指定的格式,以字串格式顯示時間time
。format
遵從DATE_FORMAT函數中的format
格式。參數類型:
time_format(varchar, varchar) time_format(timestamp, varchar) time_format(datetime, varchar) time_format(time, varchar) time_format(date, varchar)
傳回值類型:VARCHAR。
樣本:
樣本1
select time_format('12:00:00', '%H %k %h %I %l');
返回結果如下。
+-------------------------------------------+ | time_format('12:00:00', '%H %k %h %I %l') | +-------------------------------------------+ | 12 12 12 12 12 |
樣本2
select time_format(timestamp '2022-01-22 23:00:00','%H %k %h %I %l')as result;
返回結果如下。
+----------------+ | result | +----------------+ | 23 23 11 11 11 |
樣本3
select time_format(datetime '2022-01-22 23:00:00','%H %k %h %I %l')as result;
返回結果如下。
+----------------+ | result | +----------------+ | 23 23 11 11 11 |
樣本4
select time_format(time '23:00:00','%H %k %h %I %l');
返回結果如下。
+------------------------------------------------+ | time_format(TIME '23:00:00', '%H %k %h %I %l') | +------------------------------------------------+ | 23 23 11 11 11 |
樣本5
select time_format(date '2022-01-22','%H %k %h %I %l');
返回結果如下。
+--------------------------------------------------+ | time_format(DATE '2022-01-22', '%H %k %h %I %l') | +--------------------------------------------------+ | 00 0 12 12 12 |
TIME_TO_SEC
TIME_TO_SEC(time)
命令說明:返回
time
轉換為秒的結果。參數類型:
time_to_sec(varchar) time_to_sec(datetime) time_to_sec(timestamp) time_to_sec(date) time_to_sec(time)
傳回值類型:BIGINT。
樣本:
樣本1
select time_to_sec(datetime '2022-01-22 22:23:00');
返回結果如下。
+---------------------------------------------+ | time_to_sec(DATETIME '2022-01-22 22:23:00') | +---------------------------------------------+ | 80580 |
樣本2
select time_to_sec(timestamp '2022-01-22 22:23:00');
返回結果如下。
+----------------------------------------------+ | time_to_sec(TIMESTAMP '2022-01-22 22:23:00') | +----------------------------------------------+ | 80580 |
樣本3
select time_to_sec(date '2022-01-22');
返回結果如下。
+--------------------------------+ | time_to_sec(DATE '2022-01-22') | +--------------------------------+ | 0 |
樣本4
select time_to_sec(time '12:12:12');
返回結果如下。
+------------------------------+ | time_to_sec(TIME '12:12:12') | +------------------------------+ | 43932 |
樣本5
select time_to_sec('22:23:00');
返回結果如下。
+-------------------------+ | time_to_sec('22:23:00') | +-------------------------+ | 80580 |
TIMEDIFF
TIMEDIFF(expr1,expr2)
命令說明:返回
expr1
減去expr2
後的時間,與SUBTIME作用相同。參數類型:
timediff(time, varchar) timediff(time, time) timediff(varchar, varchar)
傳回值類型:DATETIME。
樣本:
樣本1
select timediff(time '12:00:00','10:00:00');
返回結果如下。
+---------------------------------------+ | timediff(TIME '12:00:00', '10:00:00') | +---------------------------------------+ | 02:00:00 |
樣本2
select timediff('12:00:00','10:00:00');
返回結果如下。
+----------------------------------+ | timediff('12:00:00', '10:00:00') | +----------------------------------+ | 02:00:00 |
樣本3
select timediff(time '12:00:00',time '10:00:00');
返回結果如下。
+--------------------------------------------+ | timediff(TIME '12:00:00', TIME '10:00:00') | +--------------------------------------------+ | 02:00:00 |
TIMESTAMP
TIMESTAMP(expr)
命令說明:返回
expr
表示的日期或日期時間。參數類型:
timestamp(date) timestamp(varchar)
傳回值類型:DATETIME。
樣本:
樣本1
select timestamp(date '2022-01-22');
返回結果如下。
+------------------------------+ | timestamp(DATE '2022-01-22') | +------------------------------+ | 2022-01-22 00:00:00 |
樣本2
select timestamp('2022-01-22');
返回結果如下。
+-------------------------+ | timestamp('2022-01-22') | +-------------------------+ | 2022-01-22 00:00:00 |
TIMESTAMPADD
TIMESTAMPADD(unit,interval,datetime_expr)
命令說明:將
interval
添加到日期或日期時間運算式datetime_expr
中。interval
的單位由unit
規定。unit
可取值為:second
、minute
、hour
、day
、week
、month
、quarter
、year
。參數類型:
timestampadd(varchar, varchar, timestamp) timestampadd(varchar, bigint, timestamp) timestampadd(varchar, varchar, date) timestampadd(varchar, bigint, date) timestampadd(varchar, varchar, datetime) timestampadd(varchar, bigint, datetime) timestampadd(varchar, varchar, varchar) timestampadd(varchar, bigint, varchar)
傳回值類型:DATETIME。
樣本:
樣本1
select timestampadd(second,'1',timestamp '2022-01-02 12:12:12')as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-02 12:12:13 |
樣本2
select timestampadd(second,1,timestamp '2022-01-02 12:12:12')as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-02 12:12:13 |
樣本3
select timestampadd(second,'1',date '2022-01-02 12:12:12')as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-02 00:00:01 |
樣本4
select timestampadd(second,1,date '2022-01-02 12:12:12')as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-02 00:00:01 |
樣本5
select timestampadd(second,'1',datetime '2022-01-02 12:12:12')as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-02 12:12:13 |
樣本6
select timestampadd(second,1,datetime '2022-01-02 12:12:12')as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-02 12:12:13 |
樣本7
select timestampadd(second,'1','2022-01-02 12:12:12')as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-02 12:12:13 |
樣本8
select timestampadd(second,1,'2022-01-02 12:12:12')as result;
返回結果如下。
+---------------------+ | result | +---------------------+ | 2022-01-02 12:12:13 |
樣本9
select timestampadd(second,1,'2022-01-02 12:12:12');
返回結果如下。
+--------------------------------------------------+ | timestampadd('second', 1, '2022-01-02 12:12:12') | +--------------------------------------------------+ | 2022-01-02 12:12:13 |
樣本10
select timestampadd(minute,8820,'2022-02-24 09:00:00');
返回結果如下。
+-----------------------------------------------------+ | timestampadd('MINUTE', 8820, '2022-02-24 09:00:00') | +-----------------------------------------------------+ | 2022-03-02 12:00:00 |
樣本11
select timestampadd(hour,1,'2022-01-02 12:12:12');
返回結果如下。
+------------------------------------------------+ | timestampadd('hour', 1, '2022-01-02 12:12:12') | +------------------------------------------------+ | 2022-01-02 13:12:12 |
樣本12
select timestampadd(day,1,'2022-01-02 12:12:12');
返回結果如下。
+-----------------------------------------------+ | timestampadd('day', 1, '2022-01-02 12:12:12') | +-----------------------------------------------+ | 2022-01-03 12:12:12 |
樣本13
select timestampadd(week,1,'2022-01-02 12:12:12');
返回結果如下。
+------------------------------------------------+ | timestampadd('week', 1, '2022-01-02 12:12:12') | +------------------------------------------------+ | 2022-01-09 12:12:12 |
樣本14
select timestampadd(month,1,'2022-01-02 12:12:12');
返回結果如下。
+-------------------------------------------------+ | timestampadd('month', 1, '2022-01-02 12:12:12') | +-------------------------------------------------+ | 2022-02-02 12:12:12 |
樣本15
select timestampadd(year,1,'2022-01-02 12:12:12');
返回結果如下。
+------------------------------------------------+ | timestampadd('year', 1, '2022-01-02 12:12:12') | +------------------------------------------------+ | 2023-01-02 12:12:12 |
樣本16
select timestampadd(quarter,1,'2022-01-02 12:12:12');
返回結果如下。
+---------------------------------------------------+ | timestampadd('quarter', 1, '2022-01-02 12:12:12') | +---------------------------------------------------+ | 2022-04-02 12:12:12 |
TIMESTAMPDIFF
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
命令說明:返回日期或日期時間運算式
datetime_expr2
減去datetime_expr1
後的結果,結果的單位由unit
指定。unit
可取值為:second
、minute
、hour
、day
、week
、month
、quarter
或year
。使用方法和TIMESTAMPADD相同。
參數類型:
timestampdiff(varchar, timestamp, timestamp) timestampdiff(varchar, date, date) timestampdiff(varchar, datetime, datetime) timestampdiff(varchar, varchar, varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select timestampdiff(second,datetime '2022-02-01 10:12:13',datetime '2022-03-01 10:12:13')as result;
返回結果如下。
+----------+ | result | +----------+ | 2419200 |
樣本2
select timestampdiff(minute,datetime '2022-02-01 10:12:13',datetime '2022-03-01 10:12:13')as result;
返回結果如下。
+---------+ | result | +---------+ | 40320 |
樣本3
select timestampdiff(hour,datetime '2022-02-01 10:12:13',datetime '2022-03-01 10:12:13')as result;
返回結果如下。
+--------+ | result | +--------+ | 672 |
樣本4
select timestampdiff(day,timestamp '2022-02-01',timestamp '2022-03-01')as result;
返回結果如下。
+--------+ | result | +--------+ | 28 |
樣本5
select timestampdiff(day,date '2022-02-01',date '2022-03-01');
返回結果如下。
+------------------------------------------------------------+ | timestampdiff('day', DATE '2022-02-01', DATE '2022-03-01') | +------------------------------------------------------------+ | 28 |
樣本6
select timestampdiff(day,datetime '2022-02-01 10:12:13',datetime '2022-03-01 10:12:13')as result;
返回結果如下。
+--------+ | result | +--------+ | 28 |
樣本7
select timestampdiff(day,'2022-02-01','2022-03-01');
返回結果如下。
+--------------------------------------------------+ | timestampdiff('day', '2022-02-01', '2022-03-01') | +--------------------------------------------------+ | 28 |
樣本8
select timestampdiff(week,'2022-02-01','2022-03-01');
返回結果如下。
+---------------------------------------------------+ | timestampdiff('week', '2022-02-01', '2022-03-01') | +---------------------------------------------------+ | 4 |
樣本9
select timestampdiff(quarter,'2022-02-01','2022-03-01');
返回結果如下。
+------------------------------------------------------+ | timestampdiff('quarter', '2022-02-01', '2022-03-01') | +------------------------------------------------------+ | 0 |
樣本10
select timestampdiff(month,'2022-02-01','2022-03-01');
返回結果如下。
+----------------------------------------------------+ | timestampdiff('month', '2022-02-01', '2022-03-01') | +----------------------------------------------------+ | 1 |
樣本11
select timestampdiff(year,datetime '2022-02-01 10:12:13',datetime '2020-05-01 10:12:13')as result;
返回結果如下。
+--------+ | result | +--------+ | -1 |
TO_DAYS
TO_DAYS(date)
命令說明:根據指定日期
date
,返回自0
年開始的天數。參數類型:
to_days(date) to_days(time) to_days(varchar) to_days(timestamp) to_days(datetime)
傳回值類型:BIGINT。
樣本:
樣本1
select to_days(date '2022-02-12');
返回結果如下。
+----------------------------+ | to_days(DATE '2022-02-12') | +----------------------------+ | 738563 |
樣本2
select to_days(time '12:12:12');
返回當前日期距0年的天數,結果如下。
+--------------------------+ | to_days(TIME '12:12:12') | +--------------------------+ | 738563 |
樣本3
select to_days(now());
返回結果如下。
+----------------+ | to_days(now()) | +----------------+ | 738563 |
樣本4
說明該樣本等價於樣本3。
select to_days(curdate());
返回結果如下。
+--------------------+ | to_days(curdate()) | +--------------------+ | 738563 |
樣本5
select to_days(datetime '2022-02-12 12:12:12');
返回結果如下。
+-----------------------------------------+ | to_days(DATETIME '2022-02-12 12:12:12') | +-----------------------------------------+ | 738563 |
樣本6
select to_days('2022-02-12 12:12:12');
返回結果如下。
+--------------------------------+ | to_days('2022-02-12 12:12:12') | +--------------------------------+ | 738563 |
樣本7
select to_days(timestamp '2022-02-12 12:12:12');
返回結果如下。
+------------------------------------------+ | to_days(TIMESTAMP '2022-02-12 12:12:12') | +------------------------------------------+ | 738563 |
TO_SECONDS
TO_SECONDS(expr)
命令說明:根據給定的
expr
,返回自0
年開始的秒數。參數類型:
to_seconds(date) to_seconds(datetime) to_seconds(timestamp) to_seconds(varchar) to_seconds(time)
傳回值類型:BIGINT。
樣本:
樣本1
select to_seconds(date '2022-02-02');
返回結果如下。
+-------------------------------+ | to_seconds(DATE '2022-02-02') | +-------------------------------+ | 63810979200 |
樣本2
select to_seconds(datetime '2022-02-02 09:09:00');
返回結果如下。
+--------------------------------------------+ | to_seconds(DATETIME '2022-02-02 09:09:00') | +--------------------------------------------+ | 63811012140 |
樣本3
select to_seconds(timestamp '2022-02-02 09:09:00');
返回結果如下。
+---------------------------------------------+ | to_seconds(TIMESTAMP '2022-02-02 09:09:00') | +---------------------------------------------+ | 63811012140 |
樣本4
執行以下SQL,系統將返回
'09:09:00'
加上curdate()
後的結果。select to_seconds(time '09:09:00');
返回結果如下。
+-----------------------------+ | to_seconds(TIME '09:09:00') | +-----------------------------+ | 63811012140 |
樣本5
select to_seconds('2022-02-02');
返回結果如下。
+--------------------------+ | to_seconds('2022-02-02') | +--------------------------+ | 63810979200 |
UNIX_TIMESTAMP
UNIX_TIMESTAMP([date])
命令說明:
UNIX_TIMESTAMP()
返回自'1970-01-01 00:00:00' UTC
至目前時間的秒數。UNIX_TIMESTAMP(date)
將參數的值返回為'1970-01-01 00:00:00'UTC
至date指定時間的秒數。參數類型:
unix_timestamp() unix_timestamp(varchar) unix_timestamp(timestamp) unix_timestamp(date) unix_timestamp(datetime)
傳回值類型:BIGINT。
樣本:
樣本1
select unix_timestamp();
返回結果如下。
+------------------+ | unix_timestamp() | +------------------+ | 1654759686 |
樣本2
select unix_timestamp(timestamp '2022-02-08 12:12:12');
返回結果如下。
+-------------------------------------------------+ | unix_timestamp(TIMESTAMP '2022-02-08 12:12:12') | +-------------------------------------------------+ | 1644293532 |
樣本3
select unix_timestamp(date '2022-02-08');
返回結果如下。
+-----------------------------------+ | unix_timestamp(DATE '2022-02-08') | +-----------------------------------+ | 1644249600 |
樣本4
select unix_timestamp(datetime '2022-02-08 12:12:12');
返回結果如下。
+------------------------------------------------+ | unix_timestamp(DATETIME '2022-02-08 12:12:12') | +------------------------------------------------+ | 1644293532 |
樣本5
select unix_timestamp('2022-02-08 12:12:12');
返回結果如下。
+---------------------------------------+ | unix_timestamp('2022-02-08 12:12:12') | +---------------------------------------+ | 1644293532 |
UTC_DATE
UTC_DATE()
命令說明:返回UTC日期。
傳回值類型:VARCHAR。
樣本:
select utc_date();
返回結果如下。
+------------+ | utc_date() | +------------+ | 2022-05-27 |
UTC_TIME
UTC_TIME()
命令說明:返回UTC時間。
傳回值類型:VARCHAR。
樣本:
select utc_time();
返回結果如下。
+------------+ | utc_time() | +------------+ | 05:53:19 |
UTC_TIMESTAMP
utc_timestamp()
命令說明:返回UTC時間戳記。
傳回值類型:VARCHAR。
樣本:
select utc_timestamp();
返回結果如下。
+---------------------+ | utc_timestamp() | +---------------------+ | 2022-05-27 15:55:15 |
WEEK
WEEK(date[,mode])
命令說明:返回
date
對應的周數,即date
是日期年份中的第幾周。date
是要擷取周數的日期。mode
選擇性參數,用於確定周數計算的邏輯。預設一周的第一天是星期日。您也可以指定一周是從星期一還是星期日開始。mode
支援的格式如下表所示。
mode
一周的第一天
周數取值範圍
說明
0
星期日
0-53
從本年的第一個星期日開始,是第一周。前面的計算為第0周。
1
星期一
0-53
若1月1日到第一個周一的天數超過3天,則計算為本年的第一周。否則為第0周。
2
星期日
1-53
從本年的第一個星期日開始,是第一周。前面的計算為上年度的第5x周。
3
星期一
1-53
若1月1日到第一個周一的天數超過3天,則計算為本年的第一周。否則為上年度的第5x周。
4
星期日
0-53
若1月1日到第一個周日的天數超過3天,則計算為本年的第一周。否則為第0周。
5
星期一
0-53
從本年的第一個星期一開始,是第一周。前面的計算為第0周。
6
星期日
1-53
若1月1日到第一個周日的天數超過3天,則計算為本年的第一周。否則為上年度的第5x周。
7
星期一
1-53
從本年的第一個星期一開始,是第一周。前面的計算為上年度的第5x周。
參數類型:
week(varchar) week(varchar, bigint) week(date) week(date, bigint) week(datetime) week(datetime, bigint) week(timestamp) week(timestamp, bigint)
傳回值類型:BIGINT。
樣本:
樣本1
select week('2022-02-27');
返回結果如下。
+--------------------+ | week('2022-02-27') | +--------------------+ | 9 |
樣本2
select week('2022-02-20',1);
返回結果如下。
+-----------------------+ | week('2022-02-20', 1) | +-----------------------+ | 7 |
樣本3
select week(date '2022-02-20');
返回結果如下。
+-------------------------+ | week(DATE '2022-02-20') | +-------------------------+ | 8 |
樣本4
select week(date '2022-02-20',1);
返回結果如下。
+----------------------------+ | week(DATE '2022-02-20', 1) | +----------------------------+ | 7 |
樣本5
select week(datetime '2022-02-20 00:00:00',1);
返回結果如下。
+-----------------------------------------+ | week(DATETIME '2022-02-20 00:00:00', 1) | +-----------------------------------------+ | 7 |
樣本6
select week(datetime '2022-02-20 00:00:00');
返回結果如下。
+--------------------------------------+ | week(DATETIME '2022-02-20 00:00:00') | +--------------------------------------+ | 8 |
樣本7
select week(timestamp '2022-02-20 00:00:00');
返回結果如下。
+---------------------------------------+ | week(TIMESTAMP '2022-02-20 00:00:00') | +---------------------------------------+ | 8 |
樣本8
select week(timestamp '2022-02-20 00:00:00',1);
返回結果如下。
+------------------------------------------+ | week(TIMESTAMP '2022-02-20 00:00:00', 1) | +------------------------------------------+ | 7 |
WEEKDAY
WEEKDAY(date)
命令說明:返回
date
是一周中的第幾天。傳回值0= Monday,1= Tuesday,2=Wednesday, 3=Thursday,4=Friday,5=Saturday,6= Sunday。參數類型:
weekday(timestamp) weekday(datetime) weekday(date) weekday(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select weekday(timestamp '2022-02-20 00:09:00');
返回結果如下。
+------------------------------------------+ | weekday(TIMESTAMP '2022-02-20 00:09:00') | +------------------------------------------+ | 6 |
樣本2
select weekday(datetime '2022-02-20 00:09:00');
返回結果如下。
+-----------------------------------------+ | weekday(DATETIME '2022-02-20 00:09:00') | +-----------------------------------------+ | 6 |
樣本3
select weekday(date '2022-02-20 00:09:00');
返回結果如下。
+-------------------------------------+ | weekday(DATE '2022-02-20 00:09:00') | +-------------------------------------+ | 6 |
樣本4
select weekday('2022-02-20');
返回結果如下。
+-----------------------+ | weekday('2022-02-20') | +-----------------------+ | 6 |
WEEKOFYEAR
WEEKOFYEAR(date)
命令說明:返回
date
對應的日曆周,取值範圍為[1,53]
。參數類型:
weekofyear(timestamp) weekofyear(datetime) weekofyear(date) weekofyear(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select weekofyear(timestamp '2022-02-27 09:00:00');
返回結果如下。
+---------------------------------------------+ | weekofyear(TIMESTAMP '2022-02-27 09:00:00') | +---------------------------------------------+ | 8 |
樣本2
select weekofyear(datetime '2022-02-27 09:00:00');
返回結果如下。
+--------------------------------------------+ | weekofyear(DATETIME '2022-02-27 09:00:00') | +--------------------------------------------+ | 8 |
樣本3
select weekofyear(date '2022-02-27');
返回結果如下。
+-------------------------------+ | weekofyear(DATE '2022-02-27') | +-------------------------------+ | 8 |
樣本4
select weekofyear('2022-02-27');
返回結果如下。
+--------------------------+ | weekofyear('2022-02-27') | +--------------------------+ | 8 |
YEAR
YEAR(date)
命令說明:返回
date
中的年份。參數類型:
year(timestamp) year(datetime) year(date) year(time) year(varchar)
傳回值類型:BIGINT。
樣本:
樣本1
select year(timestamp '2022-02-27 00:00:00');
返回結果如下。
select year(timestamp '2019-05-27 00:00:00'); +---------------------------------------+ | year(TIMESTAMP '2022-02-27 00:00:00') | +---------------------------------------+ | 2022 |
樣本2
select year(datetime '2022-02-27 00:00:00')
返回結果如下。
+--------------------------------------+ | year(DATETIME '2022-02-27 00:00:00') | +--------------------------------------+ | 2022 |
樣本3
select year(date '2022-02-27');
返回結果如下。
+-------------------------+ | year(DATE '2022-02-27') | +-------------------------+ | 2022 |
樣本4
執行以下SQL,系統將返回
'00:00:00'
加上curdate
日期部分後的結果,結果資料類型為字串。select year(time '00:00:00');
返回結果如下。
+-----------------------+ | year(TIME '00:00:00') | +-----------------------+ | 2022 |
樣本5
select year('2022-02-27');
返回結果如下。
+--------------------+ | year('2022-02-27') | +--------------------+ | 2022 |
YEARWEEK
YEARWEEK(date)
YEARWEEK(date,mode)
命令說明:返回日期的年份和星期。
返回結果中的年份可能與一年中第一周和最後一周的日期參數中的年份不同。
mode
與WEEK函數中的mode
作用相同。對於單參數文法,mode
值為0
。參數類型:
yearweek(timestamp) yearweek(timestamp, bigint) yearweek(datetime) yearweek(datetime, bigint) yearweek(date, bigint) yearweek(date) yearweek(varchar) yearweek(varchar, bigint)
傳回值類型:BIGINT。
樣本:
樣本1
select yearweek(timestamp '2022-02-27 00:00:00');
返回結果如下。
+-------------------------------------------+ | yearweek(TIMESTAMP '2022-02-27 00:00:00') | +-------------------------------------------+ | 202209 |
樣本2
select yearweek(timestamp '2022-02-27 00:00:00',1);
返回結果如下。
+----------------------------------------------+ | yearweek(TIMESTAMP '2022-02-27 00:00:00', 1) | +----------------------------------------------+ | 202208 |
樣本3
select yearweek(datetime '2022-02-27 00:00:00');
返回結果如下。
+------------------------------------------+ | yearweek(DATETIME '2022-02-27 00:00:00') | +------------------------------------------+ | 202209 |
樣本4
select yearweek(datetime '2022-02-27 00:00:00',1);
返回結果如下。
+---------------------------------------------+ | yearweek(DATETIME '2022-02-27 00:00:00', 1) | +---------------------------------------------+ | 202208 |
樣本5
select yearweek(date '2022-02-27',1);
返回結果如下。
+--------------------------------+ | yearweek(DATE '2022-02-27', 1) | +--------------------------------+ | 202208|
樣本6
select yearweek(date '2022-02-27');
返回結果如下。
+-----------------------------+ | yearweek(DATE '2022-02-27') | +-----------------------------+ | 202209 |
樣本7
select yearweek('2022-02-27');
返回結果如下。
+------------------------+ | yearweek('2022-02-27') | +------------------------+ | 202209 |
樣本8
select yearweek('2022-02-27',1);
返回結果如下。
+---------------------------+ | yearweek('2022-02-27', 1) | +---------------------------+ | 202208 |