欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL sysdate()函數(shù)的具體使用

 更新時間:2023年07月17日 11:19:20   作者:yiibai  
本文主要介紹了MySQL sysdate()函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在本教程中,您將了解MySQL SYSDATE()函數(shù)及其注意事項。

MySQL SYSDATE函數(shù)介紹下面說明了SYSDATE()函數(shù)的語法:

SYSDATE(fsp);

如果函數(shù)用于字符串上下文或YYYYMMDDHHMMSS格式,則SYSDATE()函數(shù)將返回當前日期時間,格式為“YYYY-MM-DD HH:MM:SS”的值,以防在函數(shù)用于數(shù)字上下文。
SYSDATE()函數(shù)接受一個可選參數(shù)fsp,它確定結果是否應該包含從0到6的小數(shù)秒精度。

請參見以下示例 - 

mysql> SELECT SYSDATE();
+---------------------+
| SYSDATE()           |
+---------------------+
| 2017-08-10 20:43:16 |
+---------------------+
1 row in set

如果您傳遞fsp參數(shù),則結果將包括小數(shù)秒精度,如以下示例所示:

mysql> SELECT SYSDATE(3);
+-------------------------+
| SYSDATE(3)              |
+-------------------------+
| 2017-08-10 20:43:46.985 |
+-------------------------+
1 row in set

SYSDATE 與 NOW 比較

請考慮以下示例 - 

mysql> SELECT SYSDATE(), NOW();
+---------------------+---------------------+
| SYSDATE()           | NOW()               |
+---------------------+---------------------+
| 2017-08-10 20:44:38 | 2017-08-10 20:44:38 |
+---------------------+---------------------+
1 row in set

似乎SYSDATE()和NOW()函數(shù)都返回一個相同的值,它是執(zhí)行語句時當前日期和時間。

然而,SYSDATE()函數(shù)實際上返回執(zhí)行時的時間,而NOW()函數(shù)返回一個常量時間,該語句開始執(zhí)行。

請參閱以下查詢:

mysql> SELECT NOW(), SLEEP(5), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(5) | NOW()               |
+---------------------+----------+---------------------+
| 2017-08-10 20:46:51 |        0 | 2017-08-10 20:46:51 |
+---------------------+----------+---------------------+
1 row in set

在這個例子中,我們使用SLEEP()函數(shù)暫停查詢5秒。 在同一個語句中,NOW()函數(shù)總是返回一個常量,它是語句開始的時間。

我們將NOW()函數(shù)更改為SYSDATE()函數(shù):

mysql>  SELECT SYSDATE(), SLEEP(5), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(5) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2017-08-10 20:48:14 |        0 | 2017-08-10 20:48:19 |
+---------------------+----------+---------------------+
1 row in set

在同一個語句中,SYSDATE()函數(shù)返回反映SYSDATE()函數(shù)執(zhí)行時間的不同時間值。

因為SYSDATE()函數(shù)是非確定性的,索引不能用于評估求值引用它的表達式。

為了演示這個,我們創(chuàng)建一個名為tests的表,并將一些數(shù)據(jù)插入到這個表中。

CREATE TABLE tests (
? ? id INT AUTO_INCREMENT PRIMARY KEY,
? ? t DATETIME UNIQUE
);
INSERT INTO tests(t)?
WITH RECURSIVE times(t) AS
(?
? ? SELECT now() - interval 1 YEAR t
? ? ? ? UNION ALL?
? ? SELECT t + interval 1 hour
? ? FROM times
? ? WHERE t < now()?
)
SELECT t
FROM times;

請注意,我們使用遞歸CTE來生成時間序列。 CTE從MySQL 8.0開始才有的功能。

因為t列有唯一索引,所以下列查詢應該執(zhí)行得很快:

SELECT 
    id, 
    t
FROM
    tests
WHERE
    t >= SYSDATE() - INTERVAL 1 DAY;

但是,需要15ms才能完成。讓我們使用EXPLAIN語句來看看細節(jié)。

EXPLAIN SELECT 
    id, t
FROM
    tests
WHERE
    t >= SYSDATE() - INTERVAL 1 DAY;

執(zhí)行上面分析語句,得到類似以下結果 - 

原來,MySQL必須掃描表中的所有行才能獲取數(shù)據(jù)。該索引無法使用。

如果在查詢中將SYSDATE()更改為NOW()函數(shù):

SELECT 
    id, 
    t
FROM
    tests
WHERE
    t >= NOW() - INTERVAL 1 DAY;

使用NOW()函數(shù),索引已被用于查詢數(shù)據(jù),如下面的EXPLAIN結果所示:

EXPLAIN SELECT 
    id, 
    t
FROM
    tests
WHERE
    t >= NOW() - INTERVAL 1 DAY;

請注意,MySQL為您提供了--sysdate-is-now選項,可以使SYSDATE()函數(shù)的行為與NOW()函數(shù)相同。

MySQL Sysdate函數(shù)的注意事項

1、MySQL Sysdate函數(shù)不支持傳遞參數(shù)。

2、MySQL Sysdate函數(shù)在不同的操作系統(tǒng)上返回的時間戳可能會有所不同。

3、MySQL Sysdate函數(shù)返回的日期和時間戳基于系統(tǒng)時鐘。

總結

到此這篇關于MySQL sysdate()函數(shù)的具體使用的文章就介紹到這了,更多相關MySQL sysdate內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Mysql 根據(jù)一個表數(shù)據(jù)更新另一個表的某些字段(sql語句)

    Mysql 根據(jù)一個表數(shù)據(jù)更新另一個表的某些字段(sql語句)

    這篇文章主要介紹了Mysql 根據(jù)一個表數(shù)據(jù)更新另一個表的某些字段,本文給出了sql語句,感興趣的朋友可以跟隨腳本之家小編一起學習吧
    2018-05-05
  • mysql服務1067錯誤多種解決方案分享

    mysql服務1067錯誤多種解決方案分享

    今天我的mysql服務器突然出來了1067錯誤提示,無法正常啟動了,我今天從網上找尋了大量的解決mysql服務1067錯誤的辦法,有需要的朋友可以看看
    2012-03-03
  • MySQL9.0.1安裝教程的實現(xiàn)示例

    MySQL9.0.1安裝教程的實現(xiàn)示例

    本文主要介紹了MySQL軟件的下載、解壓、環(huán)境變量配置、初始化及啟動、登錄與密碼設置等步驟,詳細說明了每一步的操作方法,感興趣的可以了解一下
    2024-10-10
  • C#列出局域網中可用SQL Server服務器

    C#列出局域網中可用SQL Server服務器

    SQLDMO(SQL Distributed Management Objects,SQL分布式管理對象)封裝了Microsoft SQL Server數(shù)據(jù)庫中的對象。SQLDMO是Microsoft SQL Server中企業(yè)管理器所使用的應用程序接口,所以它可以執(zhí)行很多功能,其中當然也包括對數(shù)據(jù)庫的備份和恢復。
    2008-04-04
  • MySQL創(chuàng)建高性能索引的全步驟

    MySQL創(chuàng)建高性能索引的全步驟

    這篇文章主要給大家介紹了關于MySQL創(chuàng)建高性能索引的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • mysql 導入導出數(shù)據(jù)庫以及函數(shù)、存儲過程的介紹

    mysql 導入導出數(shù)據(jù)庫以及函數(shù)、存儲過程的介紹

    本篇文章是對mysql中的導入導出數(shù)據(jù)庫命令以及函數(shù)、存儲過程進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • 使用mysqldump實現(xiàn)mysql備份

    使用mysqldump實現(xiàn)mysql備份

    mysqldump客戶端可用來轉儲數(shù)據(jù)庫或搜集數(shù)據(jù)庫進行備份或將數(shù)據(jù)轉移到另一個SQL服務器(不一定是一個MySQL服務器)。今天我們就來詳細探討下mysqldump的使用方法
    2016-11-11
  • SQL查詢至少連續(xù)七天下單的用戶

    SQL查詢至少連續(xù)七天下單的用戶

    這篇文章介紹了SQL查詢至少連續(xù)七天下單用戶的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • MySQL使用GROUP?BY使用技巧和注意事項總結

    MySQL使用GROUP?BY使用技巧和注意事項總結

    GROUP?BY?子句是?在MySQL?中用于將查詢結果按照指定的列或表達式進行分組的關鍵字,它通常與聚合函數(shù)一起使用,能夠對每個分組進行統(tǒng)計或計算,本文給大家總結了MySQL使用GROUP?BY使用技巧和注意事項,需要的朋友可以參考下
    2024-05-05
  • MYSQL 優(yōu)化常用方法

    MYSQL 優(yōu)化常用方法

    如何優(yōu)化你的MYSQL呢?請看下面:(不錯的優(yōu)化方案)
    2009-07-07

最新評論