Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在两个字符串之间从数据库获取数据?_Php_Mysql - Fatal编程技术网

Php 如何在两个字符串之间从数据库获取数据?

Php 如何在两个字符串之间从数据库获取数据?,php,mysql,Php,Mysql,现在我面临的问题是如何从数据库中获取相关数据。 问题是数据库时间字段中有一个字符串,我需要获取到到时间之间的数据,所以我无法获取该数据 数据库 r_value varchar(250) r_date date r_time varchar(10) 查询 SELECT SUM(r_value) as reading FROM [TABLE NAME] WHERE d_id in (7596) AND DATE_FORMAT(r_date, "%Y-%m-%d") = "2017-06

现在我面临的问题是如何从数据库中获取相关数据。 问题是数据库时间字段中有一个字符串,我需要获取到到时间之间的数据,所以我无法获取该数据

数据库

r_value varchar(250)

r_date date

r_time varchar(10)
查询

SELECT SUM(r_value) as reading FROM [TABLE NAME] WHERE d_id in (7596)
    AND DATE_FORMAT(r_date, "%Y-%m-%d") = "2017-06-28" 
    AND r_time >= "12:00 AM" AND r_time <= "07:12 am"
选择SUM(r_值)作为从[TABLE NAME]读取的数据,其中d_id位于(7596)
和日期格式(r\U日期,%Y-%m-%d”)=“2017-06-28”

对于日期和时间,您最好使用时间戳

时间戳与服务器无关

我建议您将字段类型更改为
timestamp
,然后轻松搜索它。例如:

SELECT SUM(r_value) as reading FROM [TABLE NAME] WHERE d_id in (7596)
    AND r_date = '1498631600'
    AND r_time >= '1498631600' AND r_time <= '1498631600'
选择SUM(r_值)作为从[TABLE NAME]读取的数据,其中d_id位于(7596)
r_date='1498631600'

r_时间>='1498631600'和r_时间=unix_时间戳('2017-01-01 00:00:00')和r_时间您应该使用datetime。。而不是日期和varchar。。
SELECT SUM(r_value) as reading FROM [TABLE NAME] WHERE d_id in (7596)
    AND r_date = unix_timestamp('2017-01-01')
    AND r_time >= unix_timestamp('2017-01-01 00:00:00') AND r_time <= unix_timestamp('2017-01-01 00:00:00')