有没有办法选择两个时间戳之间的所有日期。
说我有2个时间戳2/1/2015和2015年2月28日 有没有办法在所有日期之间选择
输出:
days
--------
2/1/2015 |
2/2/2015 |
2/3/2015 |
...
2/26/2015 |
2/27/2015 |
2/28/2015 |
编辑:
我正在尝试计算每天在日期之间创建的一些记录。该表只有一个timecreated字段,其中包含创建它们的时间戳,我需要做的是生成一个表格,其中包含所有日期如果当天没有创建记录,则为2个日期和0计数,或者为创建的记录数量为X.
答案 0 :(得分:3)
您可以使用generate_series生成两个日期之间的所有日期,并使用时间戳列与您的表进行联接:
SELECT a_date, count(days) FROM
generate_series('2015-01-01'::timestamp, '2015-03-31', '1 day') a_date
left outer join
my_table
on my_table.days = a_date
group by a_date
答案 1 :(得分:2)
不确定。怎么样:
SELECT * FROM table WHERE days>='2015-02-01' AND days<='2015-02-28'
答案 2 :(得分:0)
如果您想要一个实际包含日期的表,这是一种方法:
--gives a table which contains every date between start & end (inclusive)
declare @startdate datetime = '05/01/2015';
declare @enddate datetime = '05/20/2015';
declare @result table(d datetime);
declare @diff int = datediff(d,@startdate,@enddate);
declare @i int = 0;
while(@i<=@diff) begin
insert into @result(d) values (@startdate + @i);
set @i = @i + 1;
end;
select * from @result
答案 3 :(得分:0)
您可以在列上使用count()来表示是否有记录。说你的专栏被称为&#34;记录&#34; :
SELECT count(record)as NbRecord FROM table WHERE days&gt; =&#39; 2015-02-01&#39; AND天&lt; =&#39; 2015-02-28&#39;