如何使用mysql查詢(xún)24小時(shí)數(shù)據(jù)
mysql取24小時(shí)數(shù)據(jù)
MySQL是一種常用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。在進(jìn)行實(shí)時(shí)數(shù)據(jù)處理時(shí),我們常常需要查詢(xún)最近24小時(shí)的數(shù)據(jù)來(lái)進(jìn)行分析和處理。下面我們將介紹如何使用MySQL查詢(xún)最近24小時(shí)的數(shù)據(jù)。
SELECT * FROM table_name WHERE timestamp_column >= DATE_SUB(NOW(), INTERVAL 24 HOUR);
如果要查詢(xún)最近12小時(shí)的數(shù)據(jù),只需要將24改為12即可。
SELECT * FROM table_name WHERE timestamp_column >= DATE_SUB(NOW(), INTERVAL 12 HOUR);
注意,在使用DATE_SUB函數(shù)時(shí),第一個(gè)參數(shù)應(yīng)該是一個(gè)時(shí)間戳類(lèi)型的變量。
除了使用INTERVAL關(guān)鍵字外,我們還可以使用DATE_ADD函數(shù)加上負(fù)數(shù)參數(shù)來(lái)實(shí)現(xiàn)求最近N小時(shí)數(shù)據(jù)的效果。
SELECT * FROM table_name WHERE timestamp_column >= DATE_ADD(NOW(), INTERVAL -24 HOUR);
與DATE_SUB函數(shù)不同的是,DATE_ADD函數(shù)的第二個(gè)參數(shù)應(yīng)該是一個(gè)帶有負(fù)號(hào)的整數(shù)。這樣我們就可以得到最近24小時(shí)的數(shù)據(jù)。
以上就是如何使用MySQL查詢(xún)最近24小時(shí)數(shù)據(jù)的方法,希望對(duì)大家有所幫助。
MySQL 獲取前24小時(shí)每小時(shí)數(shù)據(jù)總數(shù)
一、準(zhǔn)備數(shù)據(jù)
1、創(chuàng)建表結(jié)構(gòu)
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for data_report -- ---------------------------- DROP TABLE IF EXISTS `data_report`; CREATE TABLE `data_report` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID', `app_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租戶(hù)ID', `record_num` int(11) NULL DEFAULT NULL COMMENT '記錄條數(shù)', `create_time` datetime NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間', PRIMARY KEY (`id`) USING BTREE, INDEX `appId`(`app_id`, `create_time`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2646 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '數(shù)據(jù)報(bào)表' ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
2、表中填充數(shù)據(jù)
INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (1, 'P15942995247454', 1, '2023-05-04 11:11:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (24, 'P15942995247454', 1, '2023-05-04 12:12:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (47, 'P15942995247454', 1, '2023-05-04 13:13:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (70, 'P15942995247454', 1, '2023-05-04 14:14:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (93, 'P15942995247454', 1, '2023-05-04 15:15:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (116, 'P15942995247454', 10, '2023-05-04 16:16:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (139, 'P15942995247454', 1, '2023-05-04 17:17:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (162, 'P15942995247454', 1, '2023-05-04 18:18:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (185, 'P15942995247454', 1, '2023-05-04 19:19:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (208, 'P15942995247454', 1, '2023-05-04 20:20:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (231, 'P15942995247454', 1, '2023-05-04 21:21:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (254, 'P15942995247454', 1, '2023-05-04 22:22:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (277, 'P15942995247454', 1, '2023-05-04 23:23:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (300, 'P15942995247454', 1, '2023-05-05 00:24:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (323, 'P15942995247454', 1, '2023-05-05 01:25:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (346, 'P15942995247454', 1, '2023-05-05 02:26:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (369, 'P15942995247454', 1, '2023-05-05 03:27:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (392, 'P15942995247454', 1, '2023-05-05 04:28:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (415, 'P15942995247454', 1, '2023-05-05 05:29:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (438, 'P15942995247454', 1, '2023-05-05 06:30:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (461, 'P15942995247454', 1, '2023-05-05 07:31:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (484, 'P15942995247454', 1, '2023-05-05 08:32:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (507, 'P15942995247454', 1, '2023-05-05 09:33:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (530, 'P15942995247454', 1, '2023-05-05 10:34:00'); INSERT INTO `ice`.`data_report` (`id`, `app_id`, `record_num`, `create_time`) VALUES (553, 'P15942995247454', 1, '2023-05-05 11:35:00');
二、獲取前24小時(shí)每小時(shí)數(shù)據(jù)
你可以使用以下 SQL 查詢(xún)語(yǔ)句來(lái)獲取 MySQL 數(shù)據(jù)庫(kù)中當(dāng)前前24小時(shí)每小時(shí)的數(shù)據(jù):
SELECT DATE_FORMAT( create_time, '%Y-%m-%d %H:00:00' ) AS HOUR, COUNT(*) AS count FROM data_report WHERE create_time>= DATE_SUB( NOW(), INTERVAL 24 HOUR ) GROUP BY HOUR;
這個(gè)查詢(xún)語(yǔ)句會(huì)將 data_report
表中過(guò)去24小時(shí)內(nèi)每個(gè)小時(shí)的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),并按照小時(shí)分組。其中,create_time
是你表中記錄創(chuàng)建時(shí)間的字段名,你需要將其替換成實(shí)際的字段名。DATE_FORMAT
函數(shù)用于格式化時(shí)間,將分鐘和秒鐘部分都設(shè)置為0,只保留小時(shí)部分。COUNT
函數(shù)用于統(tǒng)計(jì)每個(gè)小時(shí)內(nèi)的數(shù)據(jù)量。
執(zhí)行這個(gè)查詢(xún)語(yǔ)句后,你會(huì)得到一個(gè)結(jié)果集,其中包含了過(guò)去24小時(shí)內(nèi)每個(gè)小時(shí)的數(shù)據(jù)量。
三、獲取24小時(shí)內(nèi)的每分鐘數(shù)據(jù)總數(shù)
要獲取 MySQL 數(shù)據(jù)庫(kù)中當(dāng)前前24小時(shí)每分鐘的數(shù)據(jù),可以使用以下 SQL 查詢(xún)語(yǔ)句:
SELECT DATE_FORMAT( create_time, '%Y-%m-%d %H:%i:00' ) AS MINUTE, COUNT(*) AS count FROM data_report WHERE create_time>= DATE_SUB( NOW(), INTERVAL 24 HOUR ) GROUP BY MINUTE;
這個(gè)查詢(xún)語(yǔ)句與前面的查詢(xún)語(yǔ)句類(lèi)似,只是將時(shí)間格式化的方式改為了保留分鐘部分,并且將分組的單位改為了分鐘。執(zhí)行這個(gè)查詢(xún)語(yǔ)句后,你會(huì)得到一個(gè)結(jié)果集,其中包含了過(guò)去24小時(shí)內(nèi)每分鐘的數(shù)據(jù)量。
到此這篇關(guān)于如何使用mysql查詢(xún)24小時(shí)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)mysql取24小時(shí)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
講解Linux系統(tǒng)下如何自動(dòng)備份MySQL數(shù)據(jù)的基本教程
這篇文章主要介紹了Linux系統(tǒng)下如何自動(dòng)備份MySQL數(shù)據(jù)的基本教程,還給出了利用shell腳本全備份和增量備份的基本方法,需要的朋友可以參考下2015-11-11MyBatis中實(shí)現(xiàn)動(dòng)態(tài)SQL標(biāo)簽
動(dòng)態(tài)SQL是MyBatis的一項(xiàng)強(qiáng)大功能,它允許開(kāi)發(fā)者根據(jù)條件動(dòng)態(tài)地生成SQL語(yǔ)句,本文主要介紹了MyBatis中實(shí)現(xiàn)動(dòng)態(tài)SQL標(biāo)簽,感興趣的可以可以了解一下2024-09-09MySql批量插入時(shí)如何不重復(fù)插入數(shù)據(jù)
Mysql插入不重復(fù)的數(shù)據(jù),當(dāng)大數(shù)據(jù)量的數(shù)據(jù)需要插入值時(shí),要判斷插入是否重復(fù),然后再插入,那么如何提高效率,本文就詳細(xì)的介紹一下,感興趣的可以了解一下2021-06-06mysql觸發(fā)器簡(jiǎn)介、創(chuàng)建觸發(fā)器及使用限制分析
這篇文章主要介紹了mysql觸發(fā)器簡(jiǎn)介、創(chuàng)建觸發(fā)器及使用限制,結(jié)合實(shí)例形式分析了mysql觸發(fā)器的功能、原理、創(chuàng)建、用法及操作注意事項(xiàng),需要的朋友可以參考下2019-12-12解決MySQL8.0安裝第一次登陸修改密碼時(shí)出現(xiàn)的問(wèn)題
這篇文章主要介紹了解決MySQL8.0安裝第一次登陸修改密碼時(shí)出現(xiàn)的問(wèn)題,在文章開(kāi)頭給大家介紹了mysql 8.0.16 初次登錄修改密碼的方法,需要的朋友可以參考下2019-06-06mysql innodb 異常修復(fù)經(jīng)驗(yàn)分享
這篇文章主要介紹了mysql innodb 異常修復(fù)經(jīng)驗(yàn)分享,需要的朋友可以參考下2017-04-04