如下图所示,我想在日期范围之间的日期之间获取结果。
我已经尝试过这个查询,但它不起作用。
我想要更大的日期然后DTT_EVT_start开始表日期。
有人可以建议我如何在where子句中使用日期(而不是时间)列?
SELECT *
FROM `dwssgv_esp_datetime`
WHERE (DATE_FORMAT(DTT_EVT_start, '%Y-%m-%d') < '2015-05-10')
AND (DATE_FORMAT(DTT_EVT_end, '%Y-%m-%d') > '2015-05-10')
答案 0 :(得分:1)
你可以避免DATE_FORMAT功能, 因为它会影响性能,如果它是一个巨大的表
你可能只是喜欢,
SELECT
*
FROM
dwssgv_esp_datetime
WHERE
DTT_EVT_start < CAST('2015-05-10 00:00:00' AS DATETIME) AND
DTT_EVT_end > CAST('2015-05-10 00:00:00' AS DATETIME)
这里,&lt; 2015-05-10&gt;是你的变量日期。
OR
SELECT
*
FROM
dwssgv_esp_datetime
WHERE
DATE(DTT_EVT_start) < CAST('2015-05-10' AS DATE) AND
DATE(DTT_EVT_end) > CAST('2015-05-10' AS DATE)
答案 1 :(得分:1)
这样的东西?
SELECT * FROM dwssgv_esp_datetime WHERE DTT_EVT_start < '2015-05-10' AND DTT_EVT_end > ''2015-05-10'
答案 2 :(得分:0)
您可以转换UNIX_TIMESTAMP格式的日期并进行比较
试试这个
$string = file_get_contents('file.json');
$json = json_decode($string, true);
$totalTime = $json['route_summary']['total_time']; // 101
答案 3 :(得分:0)
这是一个简单的解决方案:
SELECT *
FROM dwssgv_esp_datetime
WHERE
CAST('2015-05-10' AS DATE)
BETWEEN DATE(DTT_EVT_start)
AND DATE(DTT_EVT_end)
BETWEEN AND
允许您检查某个值是否在特定范围内。通过使用它,您不必编写要比较的值两次。