mysql時間總結 MYSQL日期時間總結

2021-10-19 15:26:57 字數 2406 閱讀 9341

日期時間格式化

計算日期、時間之間的差值,單位有秒,天,月

#結果為:時分秒格式

timediff("12:13:45","10:13:45"),timediff("12:13:45","15:23:25") , #前者-後者,可能會返回負數

# 結果:天數datediff(now(),"2020-07-01"), datediff(now(),"2020-08-12"), #這個不考慮時間,只計算天數的差值

#計算加乙個數後的年月,計算兩個年月之間相差的月數

period_add(202008,17), period_add("202009",1),

period_diff(202009,201904) #前者-後者

字串轉換為日期函式str_to_date( )函式

#注意前者月份是阿拉伯數字,所以格式裡是%m,但後者月份是英文形式,所以格式裡使用%m

#格式裡年月日的順序要跟字串中對應

str_to_date("5 24 2019" ,"%m %d %y") as a, str_to_date("august 10 2017", "%m %d %y") as b

結果

timestamp(  )函式

第二個引數只有1個數字時,是當做秒數計算的,而後面指定minute, day都報錯

暫時還不清楚有什麼用

時間、秒數之間的轉換

last_day( ):返回給定日期那一月份的最後一天

自定義生成日期、時間

makedate(year, 天數) #根據指定的天數,返回指定年份的日期

maketime(hour, minute, second) #組合成乙個時間

舉例

獲取系統當前日期時間(ps:返回格式: 日期,時間  都有)

函式: 注意後面的幾個函式括號可以省略

selectnow(), sysdate(), #必須帶著括號

localtime, localtime(), # 返回結果都是當前日期時間格式,後面的這幾種括號可有可無

localtimestamp, localtimestamp(),current_timestamp, current_timestamp();

結果:

只返回日期 或時間,兩者不是同時存在,括號不能省略(否則報錯)

日期: curdate( ), current_date( )

date( ),  time( )  函式,分別提取日期部分、時間部分

日期加減,年月日 時分秒 都可以

adddate(now(),3),subdate(now(),-3), adddate(now(),-3), subdate(now(),3), # 可使用負數,adddate用負數代表減去幾天,subdate使用負數代表加上幾天

adddate(now(),interval10 minute),subdate(now(),interval 10minute) # adddate, subdate也可以指定引數interval

date_add(now(),interval3 day),date_sub(now(),interval 3 day) # 使用date_add和date_sub必須帶上引數interval n 單位型別

時間加減,單位只能是秒

subtime(now(),3), addtime(now(),10)

提取年月日,只要引數是日期-時間格式都可

提取時分秒,只要引數是日期-時間格式都可

MySQL時間型別總結

1 timestamp支援的時間範圍較小,datetime範圍更大。2 表中的第乙個timestamp列自動設定為系統時間。如果在乙個timestamp列中插入null,則該列值將自動設定為當前的日期和時間。在插入或更新一行但不明確給timestamp列賦值時也會自動設定該列的值為當前的日期和時間。...

mysql時間函式總結

mysql 有一些時間函式,雖然不常用,但是有時面試時會用到。1.把當前時間轉換成時間戳 select unix timestamp 2.關於年齡我們一般不直接寫具體的年齡,因為年齡是不斷變化的,只需要在資料庫中給出生日即可。sql語句如下。select name,birth,year curdat...

MySQL資料查詢(日總結)

mysql語句操作 對結果進行排序 order by select from 表名 order by 欄位名稱 desc asc desc 公升序,asc 降序 內連線查詢 inner join select 欄位名稱 from 表名1 as inner join 表名2 as on 表名1.欄位名...