Postgresql过滤结果

时间:2016-09-26 16:17:55

标签: sql postgresql

假设我有一张表Foo

id | startDate | startTime | endTime | name

我正在尝试查找“通过午夜”的事件...... start < 00:00:00end > 00:00:00

我可以使用以下内容来获取时间

select extract (epoch from (endTime - startTime)) as time from Foo

但是如何添加一个约束,允许我仅过滤那些&lt;的返回值。 0(应该是满足“午夜”属性的那些)

我试过

select extract (epoch from (endTime - startTime)) as timeSpent from Foo where timeSpent < 0
ERROR:  column "timeSpent" does not exist

2 个答案:

答案 0 :(得分:1)

您无法在定义别名的同一级别上引用别名。您需要将其包装在派生表中:

select * 
from (
  select extract (epoch from (endTime - startTime)) as timeSpent 
  from Foo 
) t 
where timespent < 0;

答案 1 :(得分:0)

我想要做的是创建一个子查询,隔离表示日期的日期部分,并编写一个大致相当于的语句:

$(document).on('change', '.inputfile', function() {
    var name = ($(this).val().split('\\').pop());
    $(this).closest('.inputgroup').append('<p>'+name+'</p>');
});

这将使您能够从表中提取特定日期。