我看到了一些关于这个问题的帖子,但我没有让它正常工作。我有一个 PHP 变量,我最初将其作为字符串发布。为了能够处理一周的日期范围,我使用 strToTime 将其转换为日期时间格式(例如,2013 年 7 月 22 日回显为 1374476400)。
我的表格将日期存储为 Ymd 格式的文本(例如,2013 年 7 月 22 日存储为 2013-07-22)。我需要运行一个比较这两个值的查询,以查找属于我一周范围内的日期,因此我试图将该文本转换为日期时间格式以进行比较。
这是我正在使用的 SQL:
$wk_begin = $_POST['wk_begin'];
$wk_begin = strToTime($wk_begin);
$wk_end = $wk_begin + 8;
$sql = "SELECT * FROM myTable WHERE (DATE(date)>=$wk_begin AND DATE(date)<$wk_end)";
我没有收到任何错误,但我的查询没有找到任何记录,即使我知道表中有 7 条匹配记录。所以我有两个问题:
1)有没有更好的方法来解决这个问题?2)如果我在正确的轨道上,我怎样才能让 sql 语句将基于文本的日期转换为一个大整数,以便我可以正确地进行比较。
任何帮助表示赞赏。谢谢!
编辑:感谢所有的建议。我已经更改了表格,以便日期以“日期”格式存储(不再有字符串)。这是更新的代码。仍然没有获得任何价值:
$wk_begin = $_POST['wk_date'];
$wk_end = $wk_begin + 7;
$sql = "SELECT * FROM Workouts WHERE 'date' BETWEEN '$wk_begin' AND '$wk_end'";