自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

程序員應知應會之MySQL里怎么計算時間日期之差?

數(shù)據(jù)庫 MySQL
Mysql的時間日期差函數(shù)還有幾個,例如time_diff等,但是最好用的就是timestampdiff,基本上只用這一個函數(shù)就夠了。大家都學會了嗎?

 本文轉(zhuǎn)載自微信公眾號「活在信息時代」,作者活在信息時代。轉(zhuǎn)載本文請聯(lián)系活在信息時代公眾號。

很多程序員都會用到時間差的應用,比如說計算一個用戶的vip賬戶是否過期之類的,就需要用當前的日期減去用戶注冊的時間,如果大于vip賬戶的有效天數(shù),比如說是30天,那么就把用戶的vip置為無效。

那么這種需求如何用Mysql來實現(xiàn)呢?很多人會想到用當前時間減去原來的時間就行了。那么我們來試試看,比如說我們用當前日期(2022-11-30)減去用戶注冊日期,比如說是2022-11-1。

select now()-'2022-11-5';

然后我們來看一下結(jié)果。

咦,出現(xiàn)了一個奇怪的大數(shù)。

那么這個數(shù)是什么呢?原來Mysql對于這種時間直接相減的做法是直接把年月日時分秒拼起來成為一個大數(shù)。

例如2022-11-30 12:15:56,會被拼成是20221130121556,然后另一個日期也是如此,所以就會得出一個奇怪的數(shù)。

那么我們想要做時間相減要什么操作呢?可以用timestampdiff函數(shù)。

它的作用是返回兩個日期時間之間的整數(shù)差。函數(shù)語法分別為:

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

其中unit是返回值的單位,可以用year, month, week, day, hour, minute, second和microsecond。

我們來試一下,例如我們使用:

select timestampdiff(month, '2022-1-1', curdate());

我們看到結(jié)果是正確的結(jié)果10。

Mysql的時間日期差函數(shù)還有幾個,例如time_diff等,但是最好用的就是timestampdiff,基本上只用這一個函數(shù)就夠了。大家都學會了嗎?

責任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2023-05-06 07:24:22

程序員視頻算法

2022-11-04 07:12:24

JavaScript基準測試

2022-09-04 19:43:05

程序員數(shù)據(jù)庫

2011-05-31 09:22:39

程序員

2011-05-26 10:04:30

程序員

2011-05-24 13:47:25

程序員

2010-07-27 16:21:25

程序員

2011-06-02 09:02:36

程序員

2011-05-31 09:37:53

程序員

2011-06-02 09:56:21

程序員團隊精神

2021-05-22 10:01:45

PythonPython列表Python程序開發(fā)

2011-05-31 10:50:36

程序員

2022-11-07 08:51:24

數(shù)據(jù)庫開發(fā)笛卡爾積

2019-01-30 14:14:16

LinuxUNIX操作系統(tǒng)

2023-05-10 08:41:40

二叉樹遍歷算法

2022-07-20 00:03:10

Python列表字典推導

2014-06-09 16:43:11

程序員

2020-05-13 11:20:57

MySQL規(guī)范數(shù)據(jù)庫

2022-10-25 08:23:09

Reactor模式I/O

2024-03-14 12:17:00

數(shù)據(jù)庫數(shù)據(jù)模型
點贊
收藏

51CTO技術(shù)棧公眾號