GVKun编程网logo

两个日期之间的Php Mysql搜索(mysql查询两个日期之间的数据)

18

本篇文章给大家谈谈两个日期之间的PhpMysql搜索,以及mysql查询两个日期之间的数据的知识点,同时本文还将给你拓展MySQL如何查询两个日期之间的记录、MySQL获取两个日期之间的日期列表、my

本篇文章给大家谈谈两个日期之间的Php Mysql搜索,以及mysql查询两个日期之间的数据的知识点,同时本文还将给你拓展MySQL 如何查询两个日期之间的记录、MySQL 获取两个日期之间的日期列表、mysql 计算两个日期之间的天数、mysql 计算两个日期之间的工作日天数等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

两个日期之间的Php 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 如何查询两个日期之间的记录

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 获取两个日期之间的日期列表

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 计算两个日期之间的天数

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 计算两个日期之间的工作日天数

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 计算两个日期之间的工作日天数等相关内容,可以在本站寻找。

本文标签: