繁体   English   中英

我无法使用年,月和秒查询日期时间列

[英]I cant query a column that is Datetime using the year, month and seconds

我的网站是用WordPress构建的,我遇到以下情况:我要查询的表是wp_posts ,要定位的列是post_date ,它是Datetime (不是Date ,由于WordPress的方便,我无法更改它) 。

如何触发一个SQL查询,该查询将为我提供有关在特定日期发布的事件的所有详细信息,该事件将来自日历。

我尝试了这个:

$date = new DateTime(2019-07-03);

$date_format = $date->format("Y-m-d");

$request = $pdo->query("SELECT * FROM posts WHERE post_date = ".$date_format);

$result = $request->fetch()

如果我使用var_dump() $dateformat可以看到数据,但是我的$result什么也没有显示。 然后我得出结论,它将永远不会显示任何内容,因为在表格中,日期也有时间。

那么,如果我只有年,月,日,而没有小时,该如何获取这些详细信息?

日期在SQL中被视为字符串。 您必须使用引号:

$request = $pdo->query('SELECT * FROM posts WHERE post_date = "'.$date_format .'"');

顺便说一句,是的,如果您有datetime列,则需要使用BETWEEN或简单地以其他方式查询:

$date_format_next = $date->add(1, 'day')->format('Y-m-d');
$request = $pdo->query('SELECT * FROM posts 
                WHERE post_date >= "'.$date_format .'"' 
                  AND post_date < "'.$date_format_next .'"');

浏览完w3schools之后,我得出结论,可以使用sql搜索。

SELECT * FROM `wp_posts` WHERE `post_date` LIKE "%2019-07-03%"

我的查询现在可以使用

您的列post_date是datetime字段,我发现请求的查询只有日期值,因此您可以将该查询用作:

$request =$pdo->query("SELECT * FROM posts WHERE DATE(post_date) = '$date_format'");

暂无
暂无

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

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