MySQL 获取某月所有的日期点

1、问题

如题目所说,通过MySQL获取某年某月所有的天数。如获取2014年2月的所有日期。

2、处理过程

2.1 创建一个数字辅助表

CREATE TABLE `nums` (
  `key` int(11) NOT NULL,
  PRIMARY KEY (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘数字辅助表‘;

2.2 创建一个存储过程为数字辅助表增加数据

DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `create_nums`(cnt int unsigned)
BEGIN
declare s int unsigned default 1;
    truncate table nums;
    insert into nums select s;
    while s*2<=cnt do
        begin
            insert into nums select `key`+s from nums;
            set s=s*2;
        end;
    end while;
END$$
DELIMITER ;

执行存储过程,增加1-50000进入数字辅助表

call create_nums(50000);

2.3 通过数字辅助表获取2014年2月1日到2014年2月31日

select CONCAT(‘2014-02-‘,lpad(n.key,2,‘0‘) ) day  from nums n where n.key < 32

2.3 在2.2中得到的数据中小于等于2014年2月最后一天的日期就是我们要的结果

select * from (
select CONCAT(‘2014-02-‘,lpad(n.key,2,‘0‘) ) day  from nums n where n.key < 32
) d where d.day <= last_day(DATE_FORMAT(‘2014-02-01‘,‘%Y-%m-%d‘)) ;
时间: 2024-12-10 21:23:03

MySQL 获取某月所有的日期点的相关文章

获取自然月的起始日期和终止日期

获取自然月的起始日期和终止日期, 比如当前为12月5日, 读取10月26日 - 11月25日的数据. import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Ma

python 获取某个月的全部日期

import calendar print range(calendar.monthrange(year, month)[1]+1)[1:]

Mysql获取系统时间,年,月,日

Mysql数据库中获取系统时间,年,月,日单个获取 获取当前系统日期时间:select SYSDATE() AS 系统日期时间; 获取当前系统年月日:select current_date AS 年月日; 获取当前系统年份:select year(CURRENT_DATE) AS 年 ; 获取当前系统月份:select month(CURRENT_DATE) AS 月; 获取当前系统日:select day(CURRENT_DATE) AS 日; 获取当前系统时间:select time(SYS

js获取给定月份的N个月后的日期

1.在讲js获取给定月份的N个月后的日期之前,小颖先给大家讲下getFullYear().getYear()的区别. ①getYear() var d = new Date() console.log(d.getYear()); 打印结果为:116 小颖百度了下,js中Date对象getYear()方法和getFullYear()方法区别,比如:JS中Date对象getYear()方法和getFullYear()方法区别发现很多人写的是: 在IE中是可以正确获取年份:2016,但是在FF等浏览器

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期(2014年11月27日 16:31:49)

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期参考网络(2014年11月27日 16:31:49 浙江) // 格式化当前日期 获取date天后的日期    function getNowFormatDate(date) {        var day = new Date();        var Year = 0;        var Month = 0;        var Day = 0;        var CurrentDate = "";  

Oracle获取当前日期前一个月的全部日期

当前日期为2018/08/12. 1.获取当前月份的天数: select to_number(to_char(last_day(sysdate),'dd')) from dual 2.获取当前日期前30天的全部日期. select trunc(sysdate-30)+rownum as days from dual connect by rownum<=30; 执行结果如下: 2.获取当前日期前一个月的全部日期.此处的一个月会根据当前月份获取本月的天数,可能是31天.30天或者29天. sele

mysql获取日期语句汇总

汇总一些MySQL获取日期的SQL语句. -- 今天 SELECT DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00') AS '今天开始'; SELECT DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') AS '今天结束'; -- 昨天 SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d 00:00:00') AS '昨天开始'; SELECT DATE_FOR

【C#日期系列】--C#获取某月第一天0分0秒以及最后一天59分59秒

工作中可能会遇到很多不常见的需求,比如这次需要获取某个月的第一天和最后一天 #region 取得某月的第一天0分0秒 /// <summary> /// 取得某月的第一天0分0秒 /// </summary> /// <param name="datetime">要取得月份的某一天</param> /// <returns></returns> public static DateTime FirstDayOfMo

mysql 获取当前日期及格式化[转]

MYSQL 获取当前日期及日期格式获取系统日期: NOW()格式化日期: DATE_FORMAT(date, format)注: date:时间字段format:日期格式 返回系统日期,输出 2009-12-25 14:38:59select now();输出 09-12-25select date_format(now(),'%y-%m-%d'); 根据format字符串格式化date值: %S, %s 两位数字形式的秒( 00,01, ..., 59)%I, %i 两位数字形式的分( 00,