【问题标题】:Trouble with MYSQL query BETWEEN two epoch timestamps?MYSQL 查询在两个纪元时间戳之间有问题吗?
【发布时间】:2011-11-26 10:06:33
【问题描述】:

我的 mysql 数据库中有纪元时间戳,我正在使用 Jquery 日期选择器在两个日期之间进行选择。当我至少在 1 天之间选择时效果很好,但如果我选择周日 - 周日(同一天),它应该带回当天下降的记录。

我假设这是因为与日期选择器集成的纪元时间戳。当您选择一个日期时,例如今天,它会返回:

BETWEEN 1317103200 AND 1317103200 ....

我知道纪元时间戳是如何工作的,当您转换并进行数学运算时,它似乎是秒...而不是精确到毫秒???

SELECT category, id, date, title 
FROM myTable
WHERE date BETWEEN $beginDate AND $endDate AND...

非常感谢!!

【问题讨论】:

    标签: php mysql unix-timestamp epoch


    【解决方案1】:

    使用mktime() 函数,其中$month$day$year 已使用日期文本框中的月、日和年填充:

    // Assumes date is in this format: dd/mm/yyyy, and your $_GET key is 'date'
    list($day, $month, $year) = explode('/', $_GET['date']);
    
    $beginDate = mktime(0, 0, 0, $month, $day, $year);
    $endDate = mktime(23, 59, 59, $month, $day, $year);
    

    【讨论】:

    • 我在这里尝试在 MySQL 中进行操作。 +1
    • 我如何仍然使用我的 GET 变量? isset($_GET
    • 嗯嗯嗯。仍然有问题......我想我需要这样的东西: $beginDate = $_GET['beginDate'] : mktime(0, 0, 0, $month, $day, $year); ... ???
    • 只需将上面代码中的$_GET['date'] 更改为$_GET['beginDate']。如果您的日期格式为 dd/mm/yyyy,则将 list 语句更改为 list($month, $day, $year) = ...
    • 是的,$_GET['endDate'] 也是如此……太棒了!谢谢!
    猜你喜欢
    • 2014-01-28
    • 2011-04-27
    • 2011-12-11
    • 1970-01-01
    • 2023-02-14
    • 2017-10-10
    • 1970-01-01
    • 2021-11-23
    • 2020-04-17
    相关资源
    最近更新 更多