mysql的週期函式嗎 Mysql時間函式

2021-10-18 11:44:32 字數 4676 閱讀 9830

通常我們會有一些時間的轉換需求,比如要統計某個時間段的收入,比如要擷取某個時間的年份,比如要根據某個日期推算出是星期几等個,這些都可以通過mysql自帶的時間函式很容易實現。因為我對mysql的函式還不熟,而通常又會呼叫這些時間函式,這邊稍加總結以便查詢。

–返回當前時間

mysql> select now(),date(now()),sysdate();

| now()               | date(now()) | sysdate()           |

| 2008-12-02 10:11:36 | 2008-12-02  | 2008-12-02 10:11:36 |

1 row in set (0.00 sec)

mysql> select curdate(),curdate()+0,curtime(),curtime()+0;

| curdate()  | curdate()+0 | curtime() | curtime()+0   |

| 2008-12-02 | 20081202    | 10:00:33  | 100033.000000 |

–返回日期當月最後一天

mysql> select last_day(』2008-12-02′);

| last_day(』2008-12-02′) |

| 2008-12-31             |

1 row in set (0.00 sec)

–返回日期的星期幾

mysql> select dayname(』2008-12-02′),dayofweek(』2008-12-02′);

| dayname(』2008-12-02′) | dayofweek(』2008-12-02′) |

| tuesday               |                       3 |

1 row in set (0.00 sec)

–返回日期的年,月,日

mysql> select month(』2008-12-02′),year(』2008-12-02′),day(』2008-12-02′);

| month(』2008-12-02′) | year(』2008-12-02′) | day(』2008-12-02′) |

|                  12 |               2008 |                 2 |

1 row in set (0.00 sec)

–返回日期的小時,分,秒

mysql> select hour(』10:05:03′),minute(』10:05:03′),second(』10:05:03′);

| hour(』10:05:03′) | minute(』10:05:03′) | second(』10:05:03′) |

|               10 |                  5 |                  3 |

1 row in set (0.00 sec)

mysql> select date_add(』1998-01-02′, interval 31 day),adddate(』1998-01-02′, 31);

| date_add(』1998-01-02′, interval 31 day) | adddate(』1998-01-02′, 31) |

| 1998-02-02                              | 1998-02-02                |

1 row in set (0.00 sec)

mysql> select date_add(』1998-01-02′,interval 2 year);

| date_add(』1998-01-02′, interval 2 year)

| 2000-01-02

1 row in set (0.00 sec)

mysql> select date_add(』1998-01-02′, interval 2 hour);

| date_add(』1998-01-02′, interval 2 hour)

| 1998-01-02 02:00:00

1 row in set (0.00 sec)

2.subdate(d,t):起始時間減去一段時間

mysql> select subdate(』1998-01-02′, interval 31 day),subdate(』1998-01-02′, 31);

| subdate(』1998-01-02′, interval 31 day) | subdate(』1998-01-02′, 31) |

| 1997-12-02                             | 1997-12-02                |

1 row in set (0.00 sec)

3.addtime(d,t):起始時間d加入時間t

mysql> select addtime(』1997-12-31 23:59:50′,』00:00:05′), addtime(』23:59:50′,』00:00:05′) ;

| addtime(』1997-12-31 23:59:50′,』00:00:05′) | addtime(』23:59:50′,』00:00:05′) |

| 1997-12-31 23:59:55                       | 23:59:55                       |

1 row in set (0.00 sec)

4.subtime(d,t):起始時間d減去時間t

mysql> select subtime(』1997-12-31 23:59:50′,』00:00:05′), subtime(』23:59:50′,』00:00:05′);

| subtime(』1997-12-31 23:59:50′,』00:00:05′) | subtime(』23:59:50′,』00:00:05′) |

| 1997-12-31 23:59:45                       | 23:59:45                       |

1 row in set (0.00 sec)

5.datediff(d1,d2):返回起始時間d1和結束時間d2之間的天數

mysql> select datediff(』1997-12-31 23:59:59′,』1997-12-30′);

| datediff(』1997-12-31 23:59:59′,』1997-12-30′) |

|                                            1 |

1 row in set (0.00 sec)

6.date_format(date,format):根據format字串顯示date值的格式

mysql> select date_format(』2008-12-02 22:23:00′, 『%y %m %m %h:%i:%s』);

| date_format(』2008-12-02 22:23:00′, 『%y %m %m %h:%i:%s』) |

| 2008 12 12 22:23:00                                     |

1 row in set (0.00 sec)

7.str_to_date(str,format) 字串轉化為時間

mysql> select str_to_date(』04/31/2004′, 『%m/%d/%y %h:%i:s』);

| str_to_date(』04/31/2004′, 『%m/%d/%y %h:%i:s』) |

| 2004-04-31 00:00:00                           |

1 row in set (0.00 sec)

8.timestamp(expr) , timestamp(expr,expr2) :

對於乙個單引數,該函式將日期或日期時間表示式 expr 作為日期時間值返回.對於兩個引數, 它將時間表示式 expr2新增到日期或日期時間表示式 expr 中,將theresult作為日期時間值返回

mysql> select timestamp(』2003-12-31′), timestamp(』2003-12-31 12:00:00′,』12:00:00′);

| timestamp(』2003-12-31′) | timestamp(』2003-12-31 12:00:00′,』12:00:00′) |

| 2003-12-31 00:00:00     | 2004-01-01 00:00:00                         |

1 row in set (0.00 sec)

9.取當天0點0分,下一天0點0分

mysql> select timestamp(date(sysdate())),timestamp(adddate(date(sysdate()),1));

| timestamp(date(sysdate())) | timestamp(adddate(date(sysdate()),1)) |

| 2008-12-02 00:00:00        | 2008-12-03 00:00:00                   |

1 row in set (0.00 sec)

和朋友一起 共學習 共進步!

猜想失敗,您看看下面的文章有用嗎?

vue 宣告週期函式 vue 生命週期函式

document data methods show console.log 執行了 beforecreate 這是遇到的第乙個生命週期函式表示例項完全會被建立出來,會執行 console.log this.msg 這時候console會顯示undefined this.show is not a ...

vue 宣告週期函式 Vue生命週期函式面試題

1.什麼是 vue 生命週期 vue例項從建立到銷毀的過程,就是vue的生命週期。也就是從開始建立 初始化資料 編譯模板 掛載dom 渲染 更新 渲染 解除安裝等一系列過程,我們稱這是vue的生命週期。2.vue生命週期的作用是什麼 它的生命週期中有多個事件鉤子,讓我們在控制整個vue例項的過程時更...

生命週期函式

另外說一下生命週期函式 virtual void onenter virtual void onentertransitiondidfinish virtual void onexit 這3個是遇到對應情況時呼叫的。在cpp檔案裡如果把它們示例了,你可以在開始時放 結束時關閉 等等。如果他下面的之類...