在mysql中處理時間問題

2021-08-17 17:31:08 字數 1884 閱讀 1841

mysql有很多函式可以處理日期和時間,提高工作效率。

注意,盡量使用標準格式的日期,如『2018-01-01』, 或者『2018-01-01 00:00:00』

###timestampdiff函式

第一種:timestampdiff函式,需要傳入三個引數,第乙個是比較的型別,可以比較frac_second、second、 minute、 hour、 day、 week、 month、 quarter或 year幾種型別,第二個和第三個引數是待比較的兩個時間,比較是後乙個時間減前乙個時間,具體用法如下:

select timestampdiff(day,'2000-02-28','2000-03-01');#2023年是閏年,結果為2天。

select timestampdiff(day,'2018-02-28','2018-03-01');#2023年是平年, 結果為1天

第二種方法: datediff函式,就傳入兩個日期函式,比較的day天數,第乙個引數減去第二個引數的天數值,這裡的兩個引數的順序和上面乙個函式是相反的。具體用法如下:

select datediff('2018-03-27','2018-02-27');#結果為28天
###date_add函式

該函式可以在日期資料上增加或減少一定的時間間隔。

date_add(date,interval expr type)
其中,type可以是:

microsecond

second

minute

hour

dayweek

month

quarter

year

second_microsecond

minute_microsecond

minute_second

hour_microsecond

hour_second

hour_minute

day_microsecond

day_second

day_minute

day_hour

year_month

示例:

select date_add('2000-02-28', interval 1 day);#結果為:'2000-02-29'

select date_add('2000-02-28', interval -1 day);#結果為:'2000-02-27'

###其他函式

date(), time():分別返回日期部分、時間部分。

now():返回當前日期和時間。

dayofweek():返回一周中第幾天,注意週日是第1天,周一是第2天,依此類推。

year(), month(), day(), hour(), minute(), second():返回年份、月份、等。

示例:

select now(), dayofweek(now()), date(now()), time(now()), year(now()), month(now()), day(now())

#結果:2018-03-27 18:24:59, 3, 2018-03-27, 18:24:59, 2018, 3, 27

#注意:今天是周二。

在sql中的date(), week(), month()函式都是常用函式。如果想以週為週期來分析資料的,直接用week函式將日期轉換一下。可能有些人會忘記week函式,其實這個函式很實用。

mysql中的日期和時間函式非常之多,大家可以在網上找一找。

###參考文章:

mysql計算兩個日期的時間差函式

w3cschool中的sql文件

如何在mysql中處理時間問題?

mysql有很多函式可以處理日期和時間,提高工作效率。注意,盡量使用標準格式的日期,如 2018 01 01 或者 2018 01 01 00 00 00 第一種 timestampdiff函式,需要傳入三個引數,第乙個是比較的型別,可以比較frac second second minute hou...

NSDate 處理時間問題

nsdate類用於儲存時間值,同時提供了一些方法來處理一些基於秒級別時差 timeinterval 運算和日期之間的早晚比較等。a 建立或初始化可用以下方法 用於建立nsdate例項的類方法有 id date 返回當前時間 id datewithtimeintervalsincenow nstime...

PHP 時間問題處理與獲取

php獲取格林威治標準時間錯誤問題 北京時間差了正好8個小時 檔案頭載入此函式 prc代表中國 date default timezone set prc 修改php.ini檔案 預設 date.timezone 修改為 date.timezone prc echo date y m d h i s...