![](/img/trans.png)
[英]Is there a way to display only the Day, Month and Year using PHP from a MSSQL Datetime column?
[英]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.