国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

MySQL日期和時間函數講授

來源:懂視網 責編:小采 時間:2020-11-09 14:02:26
文檔

MySQL日期和時間函數講授

MySQL日期和時間函數講授:MySQL日期和時間函數講解 1. NOW、CURRENT_TIMESTAMP和SYSDATE 這些函數都能返回當前的系統時間,它們之間有區別嗎先來看個例子。 mysqlSELECTNOW(),CURRENT_TIMESTAMP(),SYSDATE()\G; **************************
推薦度:
導讀MySQL日期和時間函數講授:MySQL日期和時間函數講解 1. NOW、CURRENT_TIMESTAMP和SYSDATE 這些函數都能返回當前的系統時間,它們之間有區別嗎先來看個例子。 mysqlSELECTNOW(),CURRENT_TIMESTAMP(),SYSDATE()\G; **************************

MySQL日期和時間函數講解 1. NOW、CURRENT_TIMESTAMP和SYSDATE 這些函數都能返回當前的系統時間,它們之間有區別嗎?先來看個例子。 mysql?SELECT?NOW(),CURRENT_TIMESTAMP(),SYSDATE()\G; ***************************?1. row?*************************** NO

MySQL日期和時間函數講解

1. NOW、CURRENT_TIMESTAMP和SYSDATE

這些函數都能返回當前的系統時間,它們之間有區別嗎?先來看個例子。

mysql>?SELECT?NOW(),CURRENT_TIMESTAMP(),SYSDATE()\G;
***************************?1. row?***************************
NOW():?2011-02-04?20:35:04
CURRENT_TIMESTAMP():?2011-02-04?20:35:04
SYSDATE():?2011-02-04?20:35:04

從上面的例子看來,3個函數都是返回當前的系統時間,再來看下面這個例子:

mysql>SELECT
->?????NOW(),
->???? CURRENT_TIMESTAMP(),
->???? SYSDATE(),
->???? SLEEP(2),
->?????NOW(),
->???? CURRENT_TIMESTAMP(),
->???? SYSDATE()\G
***************************?1. row?***************************
NOW():?2011-11-29?21:04:49
CURRENT_TIMESTAMP():?2011-11-29?21:04:49
SYSDATE():?2011-11-29?21:04:49
SLEEP(2):?0
NOW():?2011-11-29?21:04:49
CURRENT_TIMESTAMP():?2011-11-29?21:04:49
SYSDATE():?2011-11-29?21:04:51
1?row in?set?(2.00?sec)

在上面這個例子中人為地加入了SLEEP函數,讓其等待2秒,這時可以發現SYSDATE返回的時間和NOW及CURRENT_TIMESTAMP是不同的,SYSDATE函數慢了2秒。究其原因是這3個函數有略微區別:

CURRENT_TIMESTAMP是NOW的同義詞,也就是說兩者是相同的。

SYSDATE函數返回的是執行到當前函數時的時間,而NOW返回的是執行SQL語句時的時間。

因此在上面的例子中,兩次執行SYSDATE函數返回不同的時間是因為第二次調用執行該函數時等待了前面SLEEP函數2秒。而對于NOW函數,不管是在SLEEP函數之前還是之后執行,返回的都是執行這條SQL語句時的時間。

2.時間加減函數

先來看一個例子。

mysql>?SELECT?NOW(),NOW()+0\G;
***************************?1. row?***************************
NOW():?2011-02-04?20:46:33
NOW()+0:?20110204204633.000000
1?row in?set?(0.00?sec)

可以看到,NOW()函數可以返回時間,也可以返回一個數字,就看用戶如何使用。如果相對當前時間進行增加或減少,并不能直接加上或減去一個數字,而需要使用特定的函數,如DATE_ADD或DATE_SUB,前者表示增加,后者表示減少。其具體的使用方法有DATE_ADD(date,INTERVAL expr unit)和 DATE_SUB(date,INTERVAL expr unit),示例如下:

mysql>?SELECT?NOW()?AS?now,
DATE_ADD(now(),INTERVAL?1?DAY)?AS?tomorrow,
DATE_SUB(now(),INTERVAL?1?DAY)?AS?yesterday\G;
***************************?1. row?***************************
now:?2011-02-04?20:53:25
tomorrow:?2011-02-05?20:53:25
yesterday:?2011-02-03?20:53:25
1?row in?set?(0.00?sec)

其中expr值可以是正值也可以是負值,因此可以使用DATE_ADD函數來完成DATE_SUB函數的工作,例如:

mysql>?SELECT?NOW()?AS?now,
DATE_ADD(NOW(),INTERVAL?1?DAY)?AS?tomorrow,
DATE_ADD(NOW(),INTERVAL?-1?DAY)?AS?yesterday\G;
***************************?1. row?***************************
now:?2011-02-04?20:55:40
tomorrow:?2011-02-05?20:55:40
yesterday:?2011-02-03?20:55:40
1?row in?set?(0.00?sec)

還有一個問題,如果是閏月,那么DATE_ADD函數怎么處理呢?MySQL的默認行為是這樣的:如果目標年份是閏月,那么返回的日期為2月29日;如果不是閏月,那么返回日期是2月28日。示例如下:

mysql>?SELECT?DATE_ADD(’2000-2-29′,INTERVAL 4 YEAR) AS year;
+————+
|?year????????|
+————+
|?2004-02-29?|
+————+
1?row in?set?(0.00?sec)

?

mysql>?SELECT?DATE_ADD(’2000-2-29′,INTERVAL 1 YEAR) AS year;
+————+
|?year????????|
+————+
|?2001-02-28?|
+————+
1?row in?set?(0.00?sec)

在上面的例子中使用了DAY和YEAR數據類型,其實也可以使用MICROSECOND、SECOND、MINUTE、HOUR、WEEK、MONTH等類型,例如:

mysql>?SELECT?NOW()?AS?now,
DATE_ADD(NOW(), INTERVAL?1?HOUR)?AS?next?time\G;
***************************?1. row?***************************
now:?2011-02-04?21:00:15
next?time:?2011-02-04?22:00:15
1?row in?set?(0.00?sec)

 3. DATE_FORMAT函數

這個函數本身沒有什么需要探討的地方,其作用只是按照用戶的需求格式化打印出日期,例如:

mysql>?SELECT?DATE_FORMAT(NOW(),’%Y%m%d’) AS datetime;
+———-+
| datetime |
+———-+
|?20110204?|
+———-+
1?row in?set?(0.00?sec)

但是開發人員往往會錯誤地使用這個函數,導致非常嚴重的后果。例如在需要查詢某一天的數據時,有些開發人員會寫如下的語句:

SELECT * FROM table WHERE DATE_FORMAT(date,’%Y%m%d’)=’xxxx-xx-xx’;

一般來說表中都會有一個對日期類型的索引,如果使用上述的語句,優化器絕對不會使用索引,也不可能通過索引來查詢數據,因此上述查詢的執行效率可能非常低。

1 樓 hunan84229247 2013-10-08

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

MySQL日期和時間函數講授

MySQL日期和時間函數講授:MySQL日期和時間函數講解 1. NOW、CURRENT_TIMESTAMP和SYSDATE 這些函數都能返回當前的系統時間,它們之間有區別嗎先來看個例子。 mysqlSELECTNOW(),CURRENT_TIMESTAMP(),SYSDATE()\G; **************************
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美一区二区在线观看免费网站 | 任你躁欧美一级在线精品免费 | 精品国产一区二区三区久久影院 | 国产网站免费在线观看 | 极品美女aⅴ高清在线观看 激情综合久久 | 中文字幕有码在线播放 | 欧美日本在线 | 成人午夜精品久久久久久久小说 | 欧美日a| 国产在线不卡视频 | 精品国产乱码久久久久久浪潮 | 国内偷拍第一页 | 久久久久久穴 | 99精品热视频 | 亚洲一页 | 亚洲欧美视频一区 | 国产精品视频网站 | 成人国产精品一区二区网站 | 久久久精| 免费观看亚洲视频 | 国产欧美一区二区精品性色99 | 一级欧美日韩 | 欧美日韩在线观看一区二区 | 极品美女国产精品免费一区 | 日韩理论在线 | 国产精品一区二区手机在线观看 | 国产精品激情综合久久 | 亚洲国产精品免费在线观看 | 亚洲 另类 在线 欧美 制服 | 99精品视频在线观看免费 | 一级免费毛片 | 黄色视频毛片 | 国产视频不卡 | 久久婷婷影院 | 青青国产成人久久91网站站 | 国产视频高清在线观看 | 日本a级精品一区二区三区 日本不卡视频一区二区三区 | 伊人久久亚洲综合天堂 | 日韩另类 | 欧美精品aaa久久久影院 | 国产在线一区视频 |