【发布时间】:2021-08-03 05:05:57
【问题描述】:
我正在尝试检索开始日期和结束日期之间的设备读数。然后从结果中返回一个包含日期、计数总和和 m 值的数组。但是,当我尝试在我的 group 子句中为转换后的日期时间设置别名时,我不断收到语法错误。由于我需要将日期时间存储为日期对象,我如何在我的 group 子句中正确地为它起别名,这样我就可以采摘它了?
错误:
Mysql2::Error: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“作为日期”附近使用正确的语法:SELECT date, sum(counts) as counts, ANY_VAUE(m) as m FROM
device_readingsWHEREdevice_readings。 device_id= 1 AND (device_readings.datetime`在“2021-04-01 00:00:00”和“2021-05-01 00:00:00”之间)按日期分组(CONVERT_TZ(日期时间,“格林威治标准时间”,“ America/New_York')) 作为日期)
记录列
datetime:时间对象,counts:number,m:number
查询:
readings = @device.readings.
where(:datetime => @start_date..@end_date).
group("DATE(CONVERT_TZ(datetime, 'GMT', 'America/New_York')) as date").
order("datetime ASC").
pluck("date, sum(counts) as counts, ANY_VALUE(m) as m")
【问题讨论】:
标签: mysql ruby-on-rails ruby activerecord