本篇文章给大家谈谈两个日期之间的PhpMysql搜索,以及mysql查询两个日期之间的数据的知识点,同时本文还将给你拓展MySQL如何查询两个日期之间的记录、MySQL获取两个日期之间的日期列表、my
本篇文章给大家谈谈两个日期之间的Php Mysql搜索,以及mysql查询两个日期之间的数据的知识点,同时本文还将给你拓展MySQL 如何查询两个日期之间的记录、MySQL 获取两个日期之间的日期列表、mysql 计算两个日期之间的天数、mysql 计算两个日期之间的工作日天数等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- 两个日期之间的Php Mysql搜索(mysql查询两个日期之间的数据)
- MySQL 如何查询两个日期之间的记录
- MySQL 获取两个日期之间的日期列表
- mysql 计算两个日期之间的天数
- mysql 计算两个日期之间的工作日天数
两个日期之间的Php Mysql搜索(mysql查询两个日期之间的数据)
我有这样的mysql表:
id start_date username
1 2013-04-04 18
2 2013-03-31 19
3 2013-04-04 19
4 2013-04-02 19
5 2013-04-03 18
我正在尝试使用以下查询获取start_date介于2013-03-31至2013-05-01之间的用户名:
// $from = 2013-03-31 and $to = 2013-03-01 (example)
$search = MysqL_query("SELECT username FROM oc_calendar WHERE start_date >'$from' AND
start_date < '$to'");
$re_search = MysqL_fetch_array($search);
echo $search_p_id = $re_search['username'];
但它只是打印用户名= 18,它应该是打印18和19号用户名.为什么它不显示?任何的想法?
解决方法:
查询:
$search = MysqL_query("SELECT username FROM oc_calendar WHERE
start_date between '$from' AND '$to'");
你需要一个while循环来显示更多的用户名和正确的SQL查询(见上文):
while($re_search = MysqL_fetch_array($search)) {
$re_search['username'] . '<br>';
}
MySQL 如何查询两个日期之间的记录
MySQL 如何查询两个日期之间的记录
WHERE LogTime BETWEEN ''2010-08-01'' AND ''2010-08-19''
oracle 查询 某一时间段内的数据
select * from 表名 where 时间列 between to_date (''2016-01-01'',''yyyy-mm-dd'') and to_date (''2017-09-18'',''yyyy-mm-dd'')
MySQL 获取两个日期之间的日期列表
select * from
(select adddate(''1970-01-01'',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from
(select 0 i 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) t0,
(select 0 i 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) t1,
(select 0 i 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) t2,
(select 0 i 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) t3,
(select 0 i 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) t4) v
where selected_date between ''2017-02-10'' and ''2017-06-15'';
上例返回 2017-02-10 到 2017-06-15 之间的日期列表。
mysql 计算两个日期之间的天数
MysqL自带函数计算给定的两个日期的间隔天数
有两个途径可获得
1、利用TO_DAYS函数
select to_days(Now()) - to_days('20120512')
2、利用DATEDIFF函数
select datediff(Now(),'20120512')
参数1 - 参数2 等于间隔天数
3、利用TIMESTAMPDIFF函数
计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MysqL内置的函数 TimeStampDiff() 实现。
函数 TimeStampDiff() 是MysqL本身提供的可以计算两个时间间隔的函数,语法为:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其中unit单位有如下几种,分别是:FRAC_SECOND (microseconds),SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,YEAR 。该参数具体释义如下:
FRAC_SECOND 表示间隔是毫秒
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 星期
MONTH 月
QUARTER 季度
YEAR 年
例如:
#计算两日期之间相差多少周
select timestampdiff(week,'2011-09-30','2015-05-04');
#计算两日期之间相差多少天
select timestampdiff(day,'2015-05-04');
另外计算两日期或时间之间相差多少天还可以使用 to_days 函数,但是该函数不用于阳历出现(1582)前的值,原因是当日历改变时,遗失的日期不会被考虑在内。因此对于1582 年之前的日期(或许在其它地区为下一年 ),该函数的结果实不可靠的。具体用法如:
to_days(end_time) - to_days(start_time);
#计算两日期/时间之间相差的秒数:
select timestampdiff(SECOND,'2015-05-04');
另外还可以使用 MysqL 内置函数 UNIX_TIMESTAMP 实现,如下:
SELECT UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time);
#计算两日期/时间之间相差的时分数:
select timestampdiff(MINUTE,'2015-05-04');
另外还可以如下实现:
SELECT SEC_TO_TIME(UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time));
mysql 计算两个日期之间的工作日天数
创建透视表t500
建表
CREATE TABLE `t500` (
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=501 DEFAULT CHARSET=latin1;
插入500条数据
CREATE DEFINER=`json`@`%` PROCEDURE `i500`()
BEGIN
DECLARE a INT default 1;
while a<=500 do
insert into t500 (id) value(a);
set a=a+1;
end while;
end
2.1
select t500.id from t500 where t500.id <=DATEDIFF("2019-02-01","2019-01-01")+1
2.2
SELECT
DATE_ADD(
STR_TO_DATE( "2019-01-01", ''%Y-%m-%d'' ),
INTERVAL t500.id - 1 DAY
)
FROM
t500
WHERE
t500.id <= DATEDIFF( "2019-02-01", "2019-01-01" ) +1
2.3
SELECT
DATE_FORMAT(
DATE_ADD(
STR_TO_DATE( "2019-01-01", ''%Y-%m-%d'' ),
INTERVAL t500.id - 1 DAY
),
''%a''
)
FROM
t500
WHERE
t500.id <= DATEDIFF( "2019-02-01", "2019-01-01" ) +1
2.4
SELECT
CASE
WHEN
DATE_FORMAT(
DATE_ADD(
STR_TO_DATE( "2019-01-01", ''%Y-%m-%d'' ),
INTERVAL t500.id - 1 DAY
),
''%a''
) IN ( ''Sat'', ''Sun'' ) THEN
0 ELSE 1 end
FROM
t500
WHERE
t500.id <= DATEDIFF( "2019-02-01", "2019-01-01" ) +1
2.5 最终SQL
select sum(CASE
WHEN
DATE_FORMAT(
DATE_ADD(
STR_TO_DATE( "2019-01-01", ''%Y-%m-%d'' ),
INTERVAL t500.id - 1 DAY
),
''%a''
) IN ( ''Sat'', ''Sun'' ) THEN
0 ELSE 1 end ) as days from
t500
WHERE
t500.id <= DATEDIFF( "2019-02-01", "2019-01-01" ) +1
关于两个日期之间的Php Mysql搜索和mysql查询两个日期之间的数据的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于MySQL 如何查询两个日期之间的记录、MySQL 获取两个日期之间的日期列表、mysql 计算两个日期之间的天数、mysql 计算两个日期之间的工作日天数等相关内容,可以在本站寻找。
本文标签: