濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > mysql獲取指定時(shí)間段中所有日期或月份的語(yǔ)句(不設(shè)存儲(chǔ)過(guò)程,不加表)

mysql獲取指定時(shí)間段中所有日期或月份的語(yǔ)句(不設(shè)存儲(chǔ)過(guò)程,不加表)

熱門標(biāo)簽:400電話可以辦理嗎 拉卡拉外呼系統(tǒng) 話務(wù)外呼系統(tǒng)怎么樣 外東北地圖標(biāo)注 大眾點(diǎn)評(píng)星級(jí)酒店地圖標(biāo)注 云南電商智能外呼系統(tǒng)價(jià)格 智能外呼系統(tǒng)復(fù)位 高清地圖標(biāo)注道路 臨清電話機(jī)器人

mysql獲取一個(gè)時(shí)間段中所有日期或者月份

1:mysql獲取時(shí)間段所有月份

select DATE_FORMAT(date_add('2020-01-20 00:00:00', interval row MONTH),'%Y-%m') date from
 ( 
    SELECT @row := @row + 1 as row FROM 
    (select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t,
    (select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t2, 
    (SELECT @row:=-1) r
 ) se
 where DATE_FORMAT(date_add('2020-01-20 00:00:00', interval row MONTH),'%Y-%m') = DATE_FORMAT('2020-04-02 00:00:00','%Y-%m')

2:mysql獲取時(shí)間段所有日期

select date_add('2020-01-20 00:00:00', interval row DAY) date from
 ( 
    SELECT @row := @row + 1 as row FROM 
    (select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t,
    (select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t2, 
    (SELECT @row:=-1) r
 ) se
 where date_add('2020-01-20 00:00:00', interval row DAY) = '2020-03-02 00:00:00'

備注:

這段代碼表示數(shù)據(jù)條數(shù)限制,寫兩次查詢的日期最多顯示100條,寫三次查詢?nèi)掌谧疃囡@示1000次,以此類推,根據(jù)你自己的需求決定

下面是設(shè)置最多顯示條數(shù)10000寫法

希望能幫助到你,萌新在線求帶?。?!

下面是其他網(wǎng)友的補(bǔ)充大家可以參考一下

1、不使用存儲(chǔ)過(guò)程,不使用臨時(shí)表,不使用循環(huán)在Mysql中獲取一個(gè)時(shí)間段的全部日期

select a.Date 
from (
    select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date
    from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
    cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
    cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
) a
where a.Date between '2017-11-10' and '2017-11-15'

輸出如下

Date
----------
2017-11-15
2017-11-14
2017-11-13
2017-11-12
2017-11-11
2017-11-10

2、mysql獲取兩個(gè)日期內(nèi)的所有日期列表

select @num:=@num+1,date_format(adddate('2015-09-01', INTERVAL @num DAY),'%Y-%m-%d') as date
from btc_user,(select @num:=0) t where adddate('2015-09-01', INTERVAL @num DAY) = date_format(curdate(),'%Y-%m-%d')
order by date;

此方法優(yōu)點(diǎn)就是不需要?jiǎng)?chuàng)建存儲(chǔ)過(guò)程或者是日歷表,缺點(diǎn)就是你必須要有一個(gè)表,它的數(shù)據(jù)條數(shù)大到足夠支撐你要查詢的天數(shù)

3、mysql獲取給定時(shí)間段內(nèi)的所有日期列表(存儲(chǔ)過(guò)程)

DELIMITER $$
DROP PROCEDURE IF EXISTS create_calendar $$
CREATE PROCEDURE create_calendar (s_date DATE, e_date DATE)
BEGIN
-- 生成一個(gè)日歷表
SET @createSql = ‘CREATE TABLE IF NOT EXISTS calendar_custom (
`date` date NOT NULL,
UNIQUE KEY `unique_date` (`date`) USING BTREE
)ENGINE=InnoDB DEFAULT CHARSET=utf8‘;
prepare stmt from @createSql;
execute stmt;
WHILE s_date = e_date DO
INSERT IGNORE INTO calendar_custom VALUES (DATE(s_date)) ;
SET s_date = s_date + INTERVAL 1 DAY ;
END WHILE ;
END$$
DELIMITER ;
-- 生成數(shù)據(jù)到calendar_custom表2009-01-01~2029-01-01之間的所有日期數(shù)據(jù)
CALL create_calendar (‘2009-01-01‘, ‘2029-01-01‘);
DELIMITER $$
DROP PROCEDURE IF EXISTS create_calendar $$
CREATE PROCEDURE create_calendar (s_date DATE, e_date DATE)
BEGIN
-- 生成一個(gè)日歷表
SET @createSql = ‘truncate TABLE calendar_custom‘;
prepare stmt from @createSql;
execute stmt;
WHILE s_date = e_date DO
INSERT IGNORE INTO calendar_custom VALUES (DATE(s_date)) ;
SET s_date = s_date + INTERVAL 1 DAY ;
END WHILE ;
END$$
DELIMITER ;
-- 生成數(shù)據(jù)到calendar_custom表2009-01-01~2029-01-01之間的所有日期數(shù)據(jù)
CALL create_calendar (‘2009-01-02‘, ‘2009-01-07‘);

到此這篇關(guān)于mysql獲取指定時(shí)間段中所有日期或月份的語(yǔ)句(不設(shè)存儲(chǔ)過(guò)程,不加表)的文章就介紹到這了,更多相關(guān)mysql獲取指定時(shí)間段中的日期與月份內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 解析MySQL中存儲(chǔ)時(shí)間日期類型的選擇問(wèn)題
  • MySQL存儲(chǔ)時(shí)間類型選擇的問(wèn)題講解
  • 如何選擇合適的MySQL日期時(shí)間類型來(lái)存儲(chǔ)你的時(shí)間
  • 解決MySQL存儲(chǔ)時(shí)間出現(xiàn)不一致的問(wèn)題
  • MySQL中存儲(chǔ)時(shí)間的最佳實(shí)踐指南

標(biāo)簽:山西 揚(yáng)州 定西 溫州 福州 阿里 無(wú)錫 三明

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql獲取指定時(shí)間段中所有日期或月份的語(yǔ)句(不設(shè)存儲(chǔ)過(guò)程,不加表)》,本文關(guān)鍵詞  mysql,獲取,指定,時(shí)間段,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql獲取指定時(shí)間段中所有日期或月份的語(yǔ)句(不設(shè)存儲(chǔ)過(guò)程,不加表)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于mysql獲取指定時(shí)間段中所有日期或月份的語(yǔ)句(不設(shè)存儲(chǔ)過(guò)程,不加表)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    开阳县| 寿光市| 太谷县| 东阿县| 当阳市| 辽宁省| 绥中县| 溆浦县| 宁陵县| 五大连池市| 金华市| 武川县| 榆社县| 韩城市| 卫辉市| 元氏县| 长岭县| 泾阳县| 尉犁县| 高阳县| 桐城市| 永仁县| 鲁甸县| 城步| 馆陶县| 盘锦市| 镇江市| 土默特右旗| 平阴县| 武川县| 嘉义县| 贡觉县| 云霄县| 从江县| 桂林市| 新昌县| 曲松县| 富裕县| 永川市| 阿拉尔市| 房产|