時間日期處理 mysql

2021-10-07 08:41:54 字數 3980 閱讀 3680

型別

大小(位元組)

格式最小值

最大值舉例

date

4yyyy-mm-dd

1000-01-01

9999-12-31

1973-12-30

time

3hh:mm:ss

-838:59:59

838:59:59

15:30:00

datetime

8yyyy-mm-dd hh:mm:ss

1000-01-01 00:00:00

9999-12-31 23:59:59

1973-12-30 15:30:00

tiemstamp

4yyyymmddhhmmss

1970-01-01 00:00:00

2023年某個時刻

19731230153000

year(2|4)

1yyyy或yy

1901(4位)1970(2位)

2155(4位) 2069(2位)

1973

函式功能

curdate()

返回當前日期

curtime()

返回當前時間

now()

返回當前日期+時間

函式功能

函式功能

date()

返回指定日期時間的日期部分

time()

返回指定日期時間的時間部分

year()

返回指定日期時間的所在年份

quarter()

返回指定日期時間的所在季度

month()

返回指定日期時間的所在月份

week()

返回指定日期時間是第幾周

day()

返回指定日期時間是當月的第幾天

hour()

返回指定日期時間的小時數

minute()

返回指定日期時間的分鐘數

second()

返回指定日期時間的秒數 函式

功能函式

功能dayofyear()

返回指定時間是當年的第幾天

dayofweek()

dayofmonth()

同month()

weekofyear()

注意weekofyear() = week() + 1

dayname()

返回星期幾名稱 ,如monday

monthname()

返回月名稱,如july

select extract(year_month from

now())

;-- 返回的是202006

增加

select date_add(

'2020-06-20'

,interval

1day

)-- 增加1天

,date_add(

now(),

interval

1month

)-- 增加1個月

,date_add(curtime(),

interval

3minute);

-- 增加3分鐘

select adddate(

now(),

3);-- 增加3天

減少

date_sub(date,interval expr unit)

subdate(date,天數)

datediff()、timediff()、timestampdiff()

datediff(日期1,日期2)-返回的是相差的天數,日期1 - 日期2;

timediff(時間1,時間2)

-返回結果是時間表示式hh:mm:ss,時間1 - 時間2;

timestampdiff(unit,日期1,日期2)

- 日期2-日期1的時間差(注意與datediff順序不同),單位由unit引數決定

- unit 同上,支援常見的day week month quarter year hour minute second等。

select timestampdiff(

month

,'2020-04-15'

,'2020-05-16'

);

在mysql中,日期/時間物件輸出時會自動轉為字串,而運算時字串又會自動轉為日期/時間物件完成運算,這中間就是時間轉換函式在發揮作用。所以,用日期時間形式的字串如『2020-06-20』計算時就自動轉為了日期物件。

date_format(date,format)-將日期轉換為指定格式的字串

str_to_date(str,format)

- 將日期字串轉換為日期格式

select date_format(

now(),

'%y-%m'

);

日期時間是直接可以比較大小,日期時間距現在越近的越大。

mysql中可以直接用字串進行比較時間大小, 只要你的日期格式是合法的就行。

表中字段型別都為varchar的,也可以直接進行比較大小。

select curdate()=

'2020-06-20'

,'2020-09-09'

>

'2020-08-08'

,'2020-06-20'

>

'2020-06-20 02:08:00'

;-- 第乙個日期會自動補全時間00:00:00

-- 返回1,表示true;0表示false

unix時間(unix time),也叫做posix時間或紀元時間(epoch time),是用來記錄時間的流逝,所以也常被叫做時間戳。

定義為從1970-01-01t00:00:00開始流逝的秒數,不考慮閏秒。之後的時間是正數,之前的是負數。

從定義可以看到,它只代表了從unix紀元開始流逝的秒數,所以你身處地球上何處,這個時間都是一樣的。

unix_timestamp([date])-用於返回指定時間的unix時間戳;若未指定時間,則預設返回當前時間的時間戳

select unix_timestamp(

),unix_timestamp(curdate())

;

2.from_unixtime(unix_time)- 將unix時間戳轉換為正常的時間形式;

【參考資料】

mysql日期與時間函式(日期/時間格式化、增減、對比、時區、utc和unix時間)

mysql中時間日期的處理

1 select srcapid as apid,year statdate as datey,month statdate as datem,ticketflag as bstype,sum case when msgstatus is not null and msgstatus and msg...

SQL時間日期處理

1.當前系統日期 時間 select getdate 2.dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值 例如 向日期加上2天 select dateadd day,2,2004 10 15 返回 2004 10 17 00 00 00.000 3.datediff...

python datetime 時間日期處理

import datetime,calendar date datetime.datetime.now 獲取的為當前系統時間 1 返回昨天日期 def getyesterday today datetime.date.today oneday datetime.timedelta days 1 ye...