我认为,如果您传递给MySQL一个Epoch时间戳(作为一个长时间戳),并使用FROM_UNIXTIME()作为一个可比较的日期,那么服务器的时区就无关紧要了。但是它确实存在(至少在我们的设置中-我们需要一个特定的配置吗?)
使用MySQL版本: mysql 14.14远端5.5.48-37.8,用于Linux (x86_64)使用readline5.1
首先,我的服务器设置为UTC。
当我运行一个查询时,例如:
SELECT COUNT(*) FROM Orders
WHERE startTime BETWEEN FROM_UNIXTIME(1486509895) AND FROM_UNIX
以前有人问过这个问题,但不是我想要的答案。我在UTC/GMT中将我所有的日期存储在MYSQL中。当我为引用时间的用户提取数据时,最好使用CONVERT_TZ构造.
SELECT CONVERT_TZ(mytime,'UTC',usertimezone) as mytime FROM table
还是最好在Mysql中临时设置会话区域,然后执行正常的查询?
SET time_zone = usertimezone;
如果我使用第二个,是只对每个用户会话执行一次,还是如果我没有使用持久打开,是否需要在每次查询之前设置它?
问题
我有一个大约200万行( 115 MB)的表,它即将变得更大。当在表上运行一些实用程序脚本时,我注意到我的一个查询花费了很长时间(15+秒),而一个几乎相同的查询用了不到半秒的时间。以下是查询:
查询1:
SELECT `id` FROM `my_table` WHERE `my_column`='test' ORDER BY `id` LIMIT 28000, 1000
Execution time: 0.204 seconds
查询2:
SELECT `id` FROM `my_table` WHERE `my_column`='test' ORDER
Helllo,我有一个将一些数据写入数据库的查询
mysql_query ("INSERT INTO PVS (time_ended)
VALUES (now())", $db_conx)
or die (mysql_error());
mysql_query ("UPDATE PVS SET break = now() WHERE id = '$id'", $db_conx)
or die (mysql_error());
我想要的是为time_ended存储当前时间+5分钟而不是now(),为break存储当前时间+ 15秒而不是now
我在MySQL中运行了以下查询-
SELECT * from table
WHERE valid is TRUE
ORDER BY priority DESC
limit 10
offset 0;
时间=1秒。
vs
SELECT * from table
WHERE valid = TRUE
ORDER BY priority DESC
limit 10
offset 0;
所需时间= 66 ms。
我有关于(有效、优先级)和(有效)的索引。为什么会有这么大的差别?是真还是=真之间的区别是什么?
我的sql查询我正在使用这种类型的查询,我得到了朋友,比如谁为我发送了朋友请求并被me.but接受,当我发送朋友请求并被朋友接受时,我没有获得朋友。
我的表也是一样的
First table 'user_details'
id
firstname
lastname
username
second table 'friendslist'
sno
userid
friendid
status (1 for friend)
$id=$_SESSION['id'];
$query="select * from friendslist
当我检查GMT time 时是05:40:00,同时在mysql中运行以下查询,
SET time_zone='+00:00'; // to get GMT time
SELECT NOW();
上面的查询是05:37:50。所以在mysql中,我得到了与大约2分钟的时间差。它必须给05:40:00而不是05:37:50。如何解决这个问题?
谢谢你宝贵的时间。
我想确认一下现在函数在MySQL中是如何工作的
根据文档,当运行这个查询SELECT NOW()时,mysql返回当前时间(我猜是本地时间?)采用以下格式的YYYY-MM-DD HH-MM-SS。
如果是这样,那么当将NOW()与包含UTC ISO日期和时间的列进行比较时,为什么会这样呢?
例如,这可以很好地工作:
SELECT * FROM table where deadline > NOW() # deadline column contains a utc ISO string
上面的查询是可靠的,还是只是碰巧返回了正确的答案?
如果这是不可靠的,您将如何进行比较?
为了测试我使用的$time,我正在尝试使一个" at“作业在给定的时间内工作,但是这将是我从一个单独的MySQL查询中获得的一个日期时间。在命令行中,我这样做:
echo "mysql -e 'UPDATE admin SET row1=row2 WHERE id=1;'" | at now
我得到一份“2010-10-28 15:05的36份工作”。在PHP中,我尝试这样做:
exec("\"mysql -e 'UPDATE admin SET row1=row2 WHERE id=1'\" | at $time
我需要从MySql表中删除早于当前日期的条目。我使用这个查询来实现这一点。
delete FROM Offers WHERE ed < DATEADD(dd,-1,GETDATE())
我使用的是Windows Azure,而我的服务器运行在不同的时区。我没有看到任何更改MySql服务器时区的选项。
在特定时间zone.Or上调用GETDATE()函数的查询是什么我需要将当前时间转换为特定时区(我需要gmt+5.30)。
我能得到一个类似这样的查询吗,delete FROM Offers WHERE ed < DATEADD(dd,-1,GETDATE()+5.30)