從多個方面詳解MySQL查詢當前時間

一、MySQL中當前時間的獲取

SELECT NOW();

NOW()是MySQL內置的函數,用於獲取當前系統時間。

在MySQL中還有其他獲取當前時間的函數,如CURDATE()、CURTIME()和SYSDATE(),它們用於獲取當前日期、當前時間和當前系統日期時間。

二、使用CURRENT_TIMESTAMP替代NOW()

SELECT CURRENT_TIMESTAMP;

CURRENT_TIMESTAMP的功能與NOW()類似,也可以獲取當前系統時間,但是更加靈活,可以用作列默認值和更新列值。

CURRENT_TIMESTAMP的一個常用場景是在創建表時設置時間戳字段的默認值,例如:

CREATE TABLE `table_name` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` varchar(255) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

上面的表創建語句中,created_at字段的默認值為當前時間,updated_at字段的默認值為當前時間,並且在更新記錄時自動更新為當前時間。

三、使用DATE_FORMAT格式化時間

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s');

DATE_FORMAT函數用于格式化日期時間,其中第一個參數是要格式化的日期時間,第二個參數是格式化字符串。

常用的格式化字符串包括:

  • %Y:四位數字表示的年份
  • %m:表示月份,範圍為00~12
  • %d:表示日期,範圍為00~31
  • %H:表示小時,範圍為00~23
  • %i:表示分鐘,範圍為00~59
  • %s:表示秒數,範圍為00~59

通過使用不同的格式化字符串,我們可以將日期時間按照不同的格式輸出。

四、使用UNIX_TIMESTAMP將日期時間轉換為時間戳

SELECT UNIX_TIMESTAMP(NOW());

UNIX_TIMESTAMP函數用於將日期時間轉換為Unix時間戳,即從1970年1月1日00:00:00以來經過的秒數。

通過將日期時間轉換為Unix時間戳,我們可以進行更精確的時間計算,例如計算兩個日期時間之間的差值。

五、使用TIMESTAMPDIFF計算兩個日期時間之間的差值

SELECT TIMESTAMPDIFF(SECOND, '2022-01-01 00:00:00', NOW());

TIMESTAMPDIFF函數用於計算兩個日期時間之間的差值,其中第一個參數是時間單位,第二個參數是開始時間,第三個參數是結束時間。

常用的時間單位包括:

  • SECOND:秒數
  • MINUTE:分鐘數
  • HOUR:小時數
  • DAY:天數
  • WEEK:周數
  • MONTH:月數
  • YEAR:年數

通過使用TIMESTAMPDIFF函數,我們可以計算兩個日期時間之間相差的秒數、分鐘數、小時數等等。

六、使用DATE_ADD和DATE_SUB計算日期時間的加減

SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);

DATE_ADD和DATE_SUB函數用於計算日期時間的加減,其中第一個參數是要加減的日期時間,第二個參數是加減的時間間隔。

常用的時間間隔包括:

  • YEAR:年
  • QUARTER:季度
  • MONTH:月
  • WEEK:周
  • DAY:天
  • HOUR:小時
  • MINUTE:分鐘
  • SECOND:秒

通過使用DATE_ADD和DATE_SUB函數,我們可以計算日期時間的加減,例如獲取昨天的日期、獲取一個小時前的時間等等。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/290897.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-24 13:14
下一篇 2024-12-24 13:14

相關推薦

發表回復

登錄後才能評論