在mysql数据库中添加一整月的日期
Posted
技术标签:
【中文标题】在mysql数据库中添加一整月的日期【英文标题】:Add dates of one whole month in mysql database 【发布时间】:2015-11-16 08:57:30 【问题描述】:谁能告诉我如何在mysql数据库中添加一个整月的日期。现在我一次添加一个日期。
【问题讨论】:
制作一个脚本并将日期插入到月末日期.. @bluto 感谢您的快速回复。您能给我一个例子吗? 请检查amdixon's
答案.. 可能会有所帮助..
【参考方案1】:
此查询生成给定月份的所有天数。
我在post 中找到了这个。
当您将NOW()
函数更改为您想要的任何日期时,它会生成该月的日期。您也可以将其与您的查询结合使用,或者您可以将其与 INSERT [(col_name,...)] SELECT ...
语句一起使用以将所有日期插入到表中。
SELECT date_field
FROM
(
SELECT
MAKEDATE(YEAR(NOW()),1) +
INTERVAL (MONTH(NOW())-1) MONTH +
INTERVAL daynum DAY date_field
FROM
(
SELECT t*10+u daynum
FROM
(SELECT 0 t UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) A,
(SELECT 0 u UNION SELECT 1 UNION SELECT 2 UNION SELECT 3
UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7
UNION SELECT 8 UNION SELECT 9) B
ORDER BY daynum
) AA
) AAA
WHERE MONTH(date_field) = MONTH(NOW());
【讨论】:
【参考方案2】:计划
用数字交叉连接建立十进制数字 - 所有数字都可以表示为:
an10^n + ..a0*10^0
使用date_add在小于下个月开始的情况下添加月初数据过滤
设置
create table example
(
`date` date primary key not null
);
drop view if exists digits_v;
create view digits_v
as
select 0 as n
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
;
查询
insert into example ( `date` )
select date_add(date('2015-11-01'), interval a2.n * 100 + a1.n * 10 + a0.n day)
from digits_v a2
cross join digits_v a1
cross join digits_v a0
where date_add(date('2015-11-01'), interval a2.n * 100 + a1.n * 10 + a0.n day)
< date('2015-12-01')
;
sqlfiddle
选择前 10 名给予
select `date`
from example
order by `date`
limit 10
;
.
+----------------------------+
| date |
+----------------------------+
| November, 01 2015 00:00:00 |
| November, 02 2015 00:00:00 |
| November, 03 2015 00:00:00 |
| November, 04 2015 00:00:00 |
| November, 05 2015 00:00:00 |
| November, 06 2015 00:00:00 |
| November, 07 2015 00:00:00 |
| November, 08 2015 00:00:00 |
| November, 09 2015 00:00:00 |
| November, 10 2015 00:00:00 |
+----------------------------+
【讨论】:
以上是关于在mysql数据库中添加一整月的日期的主要内容,如果未能解决你的问题,请参考以下文章