MySQL的SELECT使用WHERE'之间

我已经具有相同的结构serveral的数据库:MySQL的SELECT使用WHERE'之间

DSID,标签,时间戳值

时间戳是unixtime,我可以选择要绘制的数据是这样的:

SELECT CONCAT(t.`dsid` ,' - ', t.`dsid` - 1) AS `DSIDs` 

, t.`value` - (SELECT `value`

FROM `MY-DB`

WHERE `dsid` = t.`dsid` - 1 * 20) AS `kWh`,

tag, dsid, value,

FROM_UNIXTIME(timestamp, '%y-%d-%m %H:%i')

FROM `MY-DB` t limit 10000;

但我想基于结构“其中间日期”来选择它,所以我可以选择按月或按周......甚至更好“最后”周,月,年(成立满一年或只是过去12个月)。

但如果我尝试这样的失败:

SELECT CONCAT(t.`dsid` ,' - ', t.`dsid` - 1) AS `DSIDs` 

, t.`value` - (SELECT `value`

FROM `MY-DB`

WHERE `dsid` = t.`dsid` - 1 * 20) AS `kWh`,

tag, dsid, value, (FROM_UNIXTIME(timestamp, '%y-%d-%m %H:%i') WHERE 'timestamp' BETWEEN UNIX_TIMESTAMP('16-27-03 23:45')) AND UNIX_TIMESTAMP('16-25-02 00:00')

FROM `MY-DB` t limit 10000;

有什么不对?

回答:

什么是错的,是我在错误的地方放置在WHERE & BETWEEN,这是它是如何工作对我来说:

SELECT CONCAT(t.`dsid` ,' - ', t.`dsid` - 1) AS `DSIDs` , t.`value` - (SELECT `value` 

FROM `MYDB`

WHERE `dsid` = t.`dsid` - 1 * 20) AS `kWh`,

tag, dsid, value,

FROM_UNIXTIME(timestamp, '%y-%m-%d %H:%i') as time

FROM `MYDB` t

WHERE timestamp

BETWEEN UNIX_TIMESTAMP('16-08-01') AND UNIX_TIMESTAMP('16-08-31 23:59:59')

可能不是这样做的最有效的方法..

以上是 MySQL的SELECT使用WHERE'之间 的全部内容, 来源链接: utcz.com/qa/258904.html

回到顶部