SELECT * FROM tabla WHERE fec <=服务器的日期和时间(不包括PC时间)


SELECT * FROM tabla WHERE fec <= date and time of de server (no PC time)

这是我的第一个问题,希望您能帮助我。

我正在做一个系统,在这个系统中,我有一个名为"fec"的表,在表"fec"上手动插入一个日期,格式为"22/05/2014 23:30",日期必须手动写入强制性(所以我想要)。

我有在查询:

SELECT * FROM table WHERE fec < = NOW () 

我想实现的是:把什么放在未来的日期,查询结果会显示,直到你得到的日期(门票到节目跨度30分钟)。

问题是:查询需要PC的时间,当日期到达时,显示基于当前PC时间的查询(我猜这使得NOW ())。因此,它不会同时显示给所有用户,因为根据一天中的时间,这可能会改变信息,用户将看到其他一些更早或更晚,这取决于。

我想要实现的是:查询是< = the server date。这样所有的人都会同时看到帖子。(我确信NOW ()是基于PC时间,因为改变PC上的时间,我可以改变查询中显示的结果,这就是我想要避免的)。

我希望你能理解,解释起来很复杂,我希望你能帮助我,提前谢谢你。

您的SQL服务器和PHP服务器可能不相同,因此NOW()函数返回的时间可能与PHP中的time函数不同。

你需要比较它们。

MySQL:

SELECT NOW()

在PHP中运行:

echo date('Y-m-d H:i:s');

并确保它们完全相同。

(我确信NOW()是基于PC的时间作为改变时间上的时间PC我可以改变查询中显示的结果,这就是我要避免)。

你说的"PC时间"是指用户的时钟吗?事实并非如此。mysql now()命令将为服务器提供时间,只有您或系统管理员可以更改。对于now(),所有用户都将得到相同的结果,无论他们的时区或时钟设置如何。

如果您希望now()命令给出一个时区的日期,而不是默认时区,您可以使用:
SET time_zone = 'America/New_York';

(在引号中插入您自己的时区)