【发布时间】:2014-07-05 18:56:00
【问题描述】:
有一个包含三列的表。 ID、日期和时间。我需要选择 2014/01/04 和 2014/06/15(由绿色指定)之间的行,其中开始时间为 12:00:00,完成时间为 20:00:00(由蓝色指定)。如何选择所有蓝色行?
我用了这个方法:
$query = "SELECT * FROM $database_table
WHERE UTCdate BETWEEN '{$from_date}' AND '{$to_date}'
AND satellite_derived_time BETWEEN CAST('{$from_time}' AS UNSIGNED)
AND CAST('{$to_time}' AS UNSIGNED)";
但这是不对的,因为时间并不总是像日期一样增加。
我需要日期在 2014/01/04 和 2014/06/15 之间并且时间在 12:00:00 和 20:00:00 之间的所有行。
日期没问题,因为我可以在 from_date 和 to_date 之间使用,但我的问题是时间。看表,时间并没有像日期一样增加,所以我不能在时间之间使用。例如,我的时间从 135911 开始,以 020719 结束,因此它只列出了这两个数字之间的行,但我需要所有蓝色行,例如不在此范围内的第 6 行。
【问题讨论】:
-
日期时间列是什么类型的?
-
您在查询中输入了哪些变量?
-
日期是 int,时间是 varcahr。
-
变量有fromDate、toDate、fromTime和toTime。
-
两个时间变量的值是多少?
标签: php mysql sql select between