在我的getRequest中我传递了两个字符串(minTime和maxTime),在MySQL中我有两列TIME(minTime和maxTime)我需要这两个值之间的所有寄存器。
因此我需要将minTime和maxTime转换为sql.date并检索正确的寄存器(字符串不能正常工作)。 我尝试了许多没有成功的事情,例如:
String minTime_user = "10:45"
java.util.Date utilDate = new SimpleDateFormat("hh:mm").parse(minTime_user);
//output: Thu Jan 01 10:28:00 GMT-05:00 1970
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
//output: 1970-01-01
如果不可能,我如何在PHP中将String转换为Time?我已经看过函数strtotime但它返回自1970年以来的秒数,理想情况下我更喜欢格式" hh:mm"能够比较而不必将我的表的值转换为Unix。
答案 0 :(得分:0)
正如您所说,如果您的时间存储在TIME列中,您可以直接在MySQL查询中比较时间:
SELECT * FROM table WHERE column BETWEEN "10:45" AND "15:44";
See here进行演示。
PHP是一种松散类型的语言,因此您无需担心将其转换为任何内容;它以字符串形式发送给MySQL。
修改:the documentation建议在查询中明确地将值转换为TIME
,因此您最终会得到以下内容:
SELECT * FROM table WHERE column BETWEEN CAST("10:45" AS TIME) AND CAST("15:44" AS TIME);
虽然在没有演员的情况下使用此功能我从未遇到任何问题。