我的表“my_logs”有大约 20,000,000 条记录,我想找出几天内每个日期有多少日志。
我想要一个结果
+------------+---------+
| date | count |
+------------+---------+
| 2016-07-01 | 1623 |
| 2016-07-02 | 1280 |
| 2016-07-03 | 2032 |
+------------+---------+
下面的这个查询只需要几毫秒就可以完成,这很好
SELECT DATE_FORMAT(created_at, '%Y-%m-%d') as date,
COUNT(*) as count
FROM my_logs
WHERE created_at BETWEEN '2016-07-01' AND '2016-07-04'
GROUP BY DATE_FORMAT(created_at, '%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)
查询说明:
+------------+---------+-------+-----------------------------+
|select_type | table | type | possible_keys |
+------------+---------+-------+-----------------------------+
| SIMPLE | my_logs| index | index_my_logs_on_created_at |
+------------+---------+-------+-----------------------------+
+-----------------------------+---------+----------+
| key | key_len | rows |
+-----------------------------+---------+----------+
| index_my_logs_on_created_at | …
我有两张带时间戳的桌子
TABLE1
当地时间有TIME_STAMP
TABLE2
使用UTC中的TIME_STAMP
我需要做点什么
select count(*) from TABLE1 where TIME_STAMP > TABLE2.TIME_STAMP
Run Code Online (Sandbox Code Playgroud)
问题是这个应用程序将部署在多个时区,所以我不能使用以下
SELECT CONVERT_TZ(TABLE2.TIME_STAMP,'EST','UTC')
Run Code Online (Sandbox Code Playgroud)
因为' EST
'可以是任何时区.
有没有办法获取本地时区代码并将其替换为第二个参数?或者是否有更好,更直接的方法来解决我的问题?
注意:TABLE1和TABLE2 TIME_STAMPS必须分别保留为本地和UTC,因为它们是我无法控制的外部...
我使用MySQL DATETIME列来存储日期和时间.日期为UTC.我想从一天中选择项目.我现在在做什么:
SELECT * FROM data WHERE DATE(CONVERT_TZ(datetime, 'UTC', 'Australia/Sydney')) = '2012-06-01'
Run Code Online (Sandbox Code Playgroud)
请注意,时区取决于用户
问题是桌面增长很慢.有没有解决方法如何让它更快?
嗨,我对这个UTC和GMT很困惑
我正在插入MySQL表作为前栏"event_date",如"2010-07-01 23:50:00"(日期时间)我的客户要求前端的选项为GMT +1 GMT +2 GMT -1 GMT -2 ...等等,如果我选择任何选项GMT +2,event_date将根据GMT +2过滤/列出.
我不知道如何继续,谷歌搜索后我发现了这一点
CONVERT_TZ( `field_eventdate_value` , '+00:00', '+10:00' )
Run Code Online (Sandbox Code Playgroud)
以及它是否运作良好,我的客户给了我一个样本网址来检查这样
http://www.forexpros.com/economic-calendar/
我正在使用drupal节点
提前致谢,
戈壁