【原理】日期、時間類型比較
比較的是時間戳,即long型
【原理】日期、時間類型和字符串比較
當涉及日期類型、時間類型和字符串類型比較時,會先将字符串轉換成日期、時間類型,然後進行比較;
例如: date_col < "2020-09-01" ,date_col是date類型,在比較時,會先将"2020-09-01"轉換成date類型,然後再比較
【常用日期和時間處理函數】
AddDate():增加一個日期(天、周等)
AddTime():增加一個是時間(時、分等)
Now():返回當前日期和時間
CurDate():返回當前日期
CurTime():返回當前時間
Date():返回日期時間的日期部分
DateDiff():計算兩個日期之差
-語法: datediff(string enddate, string startdate)。返回結束日期減去開始日期的天數
Date_Add():高度靈活的日期運算函數
Date_Sub(): 返回兩個日期之間的間隔
-語法: date_sub (string startdate, int days)。 返回開始日期startdate減少days天後的日期。
Date_Format():返回一個格式化的日期或時間串
DayOfWeek():對于一個日期,返回對應的星期幾,顯示的一周是從周日開始周六結束,其中周日為1,周六為7
WeekDay(): 對于一個日期,返回對應的星期幾,顯示的一周是從周一開始周日結束,其中周一為0,周日為6
Time():返回一個日期時間的時間部分
Year():返回一個日期的年份部分
Month():返回一個日期的月份部分
Day():返回一個日期的天數部分
Hour():返回一個時間的小時部分
Minute():返回一個時間的分鐘部分
Second():返回一個時間的秒數部分
【日期函數轉換】
from_unixtime語法: from_unixtime(bigint unixtime[, string format])。轉化UNIX時間戳(從1970-01-01 00:00:00 UTC到指定時間的秒數)到當前時區的時間格式
2. 獲取當前UNIX時間戳函數:(當前時間戳)
unix_timestamp
語法: unix_timestamp()。獲得當前時區的UNIX時間戳
3. 日期轉UNIX時間戳函數:(日期->時間戳)
unix_timestamp語法: unix_timestamp(string date)。轉換格式為"yyyy-MM-dd HH:mm:ss"的日期到UNIX時間戳。如果轉化失敗,則返回0。4. 指定格式日期轉UNIX時間戳函數:(指定日期格式化->時間戳)
unix_timestamp
語法: unix_timestamp(string date, string pattern)。轉換pattern格式的日期到UNIX時間戳。如果轉化失敗,則返回0。
【日期格式化】
DATE_FORMAT() 函數用于以不同的格式顯示日期/時間數據
【日期、時間戳、字符串互轉】
涉及函數:
date_format(date,format)
unix_timestamp()
str_to_date(str,format)
from_unixtime(unix_timestamp,format)
1) 時間->字符串
date_format(now(0,"%Y-%m-%d")
2) 時間->時間戳
unix_timestamp(now())
3) 字符串-> 時間
str_to_date("2016-01-02","%Y-%m-%d %T")
4) 字符串-> 時間戳
unix_timestamp("2020-08-01")
5) 時間戳-> 時間
from_unixtime(1592755199)
6) 時間戳-> 字符串
from_unixtime(1592755199,"%Y-%m-%d")
【時間差函數】-timestampdiff、timediff、datediff
1.timestampdiff
語法:timestampdiff(interval, startDateTime,endDateTime)
結果:返回(endDateTime-startDateTime)的時間差,結果單位由interval參數給出。
interval 參數:
2. timediff
語法:timediff( Date1, Date2)
結果:返回DAY天數,Date1-Date2 的天數值,結果單位為day
3. datediff
語法:timediff(time1,time2)
結果:返回兩個時間相減得到的差值,time1-time2,結果單位為Time類型
【案例-常用日期和時間處理函數】
select ADDDATE(NOW(),INTERVAL 1 DAY)
select ADDTIME(NOW(),"10:10:10")
select Now()
select CURDATE()
select CurTime()
select CURRENT_DATE()
select CURRENT_TIME()
select CURRENT_TIMESTAMP()
select DATE(now())
select DATEDIFF("2020-08-01","2020-08-20")
select DATE_ADD(NOW(),INTERVAL 1 DAY)
select DATE_FORMAT(NOW(),"%Y-%m-%d"),DATE_FORMAT(NOW(),"%y-%M-%D %T")
select DAYOFWEEK("2020-09-21"),WEEKDAY("2020-09-21")
select TIME(now())
select YEAR(now())
select month(now())
select DAY(now())
select Hour(now())
select Minute(now())
select second(now())
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!