会感激一些帮助!
数据库表的设置如下:
id(varchar),
temp(varchar),
humi(varchar),
time(varchar)
然后我想用户输入ID,开始日期和结束日期。 问题是如何格式化时间列中的字符串,例如:18/03/14:21:52:36
用户不必输入时间,只需输入日期。
我认为可以用类似的方式做:
$result = mysql_query("SELECT * FROM $tbl WHERE id = '$id' AND time BETWEEN '$start%' AND '$stop%'");
但它不起作用。
当date
以这种方式存储时,是否可以使用sql查询执行此操作?
此致
。安德斯
编辑:
它不起作用,可能是因为我做错了= /
如果我这样做:
$start= "13/02/14 : 12:17:34";
$stop = "13/02/14 : 12:36:18";
$result = mysql_query("SELECT * FROM $tbl WHERE id = '$id' AND tid BETWEEN '$start' AND '$stop'");
..数据将按预期显示
但是当我尝试使用str_to_date()时,它没有像我想的那样工作,或者它根本没有出现任何数据。
$start= "13/02/14";
$stop = "10/02/14";
$id = "3E000004C6DB8D28";
$result = mysql_query("SELECT * FROM $tbl WHERE id = '$id' AND tid BETWEEN str_to_date('$start%', '%d/%m/%Y') AND str_to_date('$stop%', '%d/%m/%Y')");
EDIT2:
第一次真的不知道我在做什么很奇怪,但现在它适用于这段代码:
$result = mysql_query("SELECT * FROM $tbl WHERE id = '$id' AND tid BETWEEN '$start' AND '$stop'");
答案 0 :(得分:1)
您需要使用str_to_date()
:
WHERE id = '$id' AND
tid BETWEEN str_to_date('$start%', '%d/%m/%Y') AND str_to_date('$stop%', '%d/%m/%Y')
显然,在将值插入查询之前,您也可以在应用程序中执行此操作。如果是这样,请将值转换为'YYYY-MM-DD'
格式。