php/mysql - 日期格式和时间部分
很抱歉,这个问题已经被回答过很多次了,但我找不到答案,我很困惑。
我有一个 mysql 查询,当我在数据库中运行它时,它似乎输出了我想要的结果 - 但是当我通过 PHP 运行查询时,它没有正确输出。
在数据库中,日期的存储方式如下:
2009-08-13T00:00:00
我想要做的不是显示早于今天日期的数据。因此,在 where 子句中执行以下操作:
WHERE dateField1 >= DATE_FORMAT(now(),'%Y-%m-%d') AND dateField2 >= DATE_FORMAT(now(),'%Y-%m-%d')
我的意图是删除时间部分,因为我正在努力寻找一种将 now() 的时间部分转换为午夜的方法。
当我在 PHPMyadmin 上运行它时,这似乎有效,但当我运行 php 脚本时,它不起作用。
有任何想法吗?
非常感谢!
Apologies if this has already been answered many times, but I was unable to find the answer and I was flummoxed.
I have a mysql query which seemingly outputs the result I want when I run it in the database - however when I run the query through PHP, it does not output correctly.
In the database, dates are stored like this:
2009-08-13T00:00:00
What I want to do is NOT display data that is older than todays date. So, in the where clause is do this:
WHERE dateField1 >= DATE_FORMAT(now(),'%Y-%m-%d') AND dateField2 >= DATE_FORMAT(now(),'%Y-%m-%d')
My intention is to strip the time portion, as I was struggling to find a way to convert the time part of now() to midnight.
This seems to work when I run it on PHPMyadmin, but when I run the php script it does not.
Any ideas?
Many Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您没有使用诸如 sprintf 之类的东西来构建字符串,是吗?如果是这样,您需要用另一个
%
转义%
无论如何,您可以使用函数
DATE()
You're not using something like
sprintf
to build the string are you? If so, you need to escape the%
with another%
In any case, you can use the function
DATE()
尼克夫是对的。我同意这一点。
如果使用 sprintf() 函数进行 SQL 调用,您可以将查询转换为:
PHP see % as type specifier when using sprintf()。
为了避免这种情况,你需要在 MySQL 格式字符串前面再加一个 %,即 %%Y 或 %%m 或 %%d。 MySQL 查询的实际输出将再次变为 %Y 或 %m 或 %d。
nickf is right. I agree with that.
In case of using sprintf() function to make a SQL call, you may turn your query into this:
PHP see % as type specifier when using sprintf().
To escape this, you need to add one more % in front of MySQL format string, i.e., %%Y or %%m or %%d. The actual output to MySQL query would become %Y or %m or %d again.