【发布时间】:2016-05-13 15:38:25
【问题描述】:
我有一个周列,周数为w0, w1, w2...。我正在尝试获取最近六周的数据。这是我正在使用的 sql 查询。
SELECT * FROM week
WHERE uid = '9df984da-4318-1035-9589-493e89385fad'
AND report_week BETWEEN `'w52' AND 'w5'`;
'w52' 基本上是 2015 年 12 月的第 52 周,'w5' 是 2016 年 1 月。'between' 似乎不起作用。获取上述两周数据的最佳方式是什么?
这是 CREATE TABLE 语句:
CREATE TABLE `week` (`uid` VARCHAR(255) DEFAULT '' NOT NULL,
`report_week` VARCHAR(7) NOT NULL,
`report_files_active` BIGINT DEFAULT NULL);
本质上,此表是从具有日期列的其他表中填充的。它使用其他表中的日期并将每周数据汇总到此表中。
感谢任何帮助。
【问题讨论】:
-
你不是在表中存储时间戳值吗?
-
显示你的表结构。附上你的表的create table语句。
-
between 是替换“大于等于和小于等于”的组合,但您的情况正好相反。你在表中存储日期吗?
-
为什么要存储'w'?
-
将周数存储为整数。