如何使用mysql“LIKE”带有时间戳的语法?

发布于 2024-08-19 11:41:18 字数 159 浏览 9 评论 0原文

我希望允许我的用户在数据库中搜索在某一天提交的行。使用 date() 函数将日期输入数据库中的字段,这很棒,但是当我使用 php strtotime 函数时,日期当然不准确相同。

有一些聪明的 mysql 函数可以帮助我解决这个问题吗?

I want to allow my users to search the database for a row that was submitted on a certain day. The date is entered into the field in the database using the date() function which is great, but when i use the php strtotime function, of course the dates are not exactly the same.

Is there some clever mysql function that can help me with this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

硪扪都還晓 2024-08-26 11:41:18

我之前遇到过这个问题。

您最好生成开始日期和结束日期,然后使用 BETWEEN 函数。

所以像这样:

$start_date = "2009-01-01 00:00:00";
$end_date = "2009-01-01 23:59:59";

$sql = "SELECT * FROM table WHERE date BETWEEN '$start_date' AND '$end_date' AND id = 'x';

当然,您只需使用 strtotime 从数据库中提取日期并附加时间戳 - 取决于您如何使用 date()

希望这有帮助:)

I had an issue with this before.

You're best to generate a start and end date then use the BETWEEN function instead.

So something like this:

$start_date = "2009-01-01 00:00:00";
$end_date = "2009-01-01 23:59:59";

$sql = "SELECT * FROM table WHERE date BETWEEN '$start_date' AND '$end_date' AND id = 'x';

Of course you would just pull your dates from the DB using strtotime and append the time stamps - depends how you used date()

Hope this helps :)

岁月蹉跎了容颜 2024-08-26 11:41:18

您可以使用MySQL的 DATE() 提取时间戳日期部分的函数:

select ... from table ... where DATE(date_column) = '2010-01-25';

如果您在从 PHP 提交“2010-01-25”时遇到问题,您可以使用 PHP 的 日期函数,以 'Ymd' 作为参数,仅获取日期部分。

$d = date('Y-m-d', strtotime(...));

仔细看看你的问题,看来你需要这两个。首先使用 PHP 的日期函数仅获取日期部分,然后使用 MySQL 的日期仅匹配这些记录。

You can use MySQL's DATE() function to extract date part of the timestamp:

select ... from table ... where DATE(date_column) = '2010-01-25';

If you have problem submitting '2010-01-25' from PHP, you can use PHP's date function with 'Y-m-d' as parameter to only get the date part.

$d = date('Y-m-d', strtotime(...));

Looking at your question closely, it seems you'll need both of those. First use PHP's date function to get only the date part and then use MySQL's date to match only those records.

静若繁花 2024-08-26 11:41:18

PHP:

$timestamp_from_php = strtotime('December 25, 2009');

SQL:

select
    `fields`
from
    Table t
where
    date_format('Y-m-d', t.`datetime_field`) = date_format('Y-m-d', '$timestamp_from_php')

PHP:

$timestamp_from_php = strtotime('December 25, 2009');

SQL:

select
    `fields`
from
    Table t
where
    date_format('Y-m-d', t.`datetime_field`) = date_format('Y-m-d', '$timestamp_from_php')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文