繁体   English   中英

PHP / SQL 查询从现在到 1 小时前的日期时间

[英]PHP / SQL query datetimes from now to 1 hour ago

我一直在用头撞墙,试图让这个查询起作用。 我试图获得“last_modified”日期时间字段在最后一小时内的结果。 我放弃了尝试“DATE_SUB(DATE(), INTERVAL 1 HOUR”方法,现在正在使用 Carbon。无论使用哪种方法,当我将间隔设置为几天时,我才会得到结果,而且没有任何回报是我的正在寻找。我有最近的带有日期时间戳的数据。请帮忙。

当前代码:

$day_ago = Carbon::now()->subDays(1)->format('Ym-d');

$sql = "SELECT appt_id, provider_id, start_datetime, end_datetime, added_zen, appt_notes, pt_fname, pt_lname, conf_status, last_modified, zen_block_out_time_id
    FROM appointments WHERE is_del = 0 AND (
  zen_block_out_time_id IS NOT NULL AND (last_modified < ($day_ago)) AND location_id = 2) ORDER BY start_datetime ASC";

您在评论中解释说此示例是您尝试过的,但您实际上是在尝试从过去一小时内获取记录。

如果您的代码中不起作用的部分是 Carbon 方法,请记住根据您的需要格式化结果。 这些都有效:

$last_day  = Carbon::now()->subDays(1)->format('Y-m-d');
$last_hour = Carbon::now()->subHours(1)->format('H:i');

然后,您需要确定“last_modified”是哪种列。 它可以是TIMESTAMPDATETIME或只是DATE

如果它是DATE ,那么您就不走运了,如果您想实现目标,则必须更改数据库,因为该列不包含有关“时间”的信息,仅包含日期。

相反,如果它是TIMESTAMP ,则需要将 Carbon 中的 output 格式化为时间戳。

$last_hour = Carbon::now()->subHours(1)->timestamp;

但是你用的是Laravel这样的框架吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM