SQL检查列和行之间的日期

时间:2016-07-23 21:08:37

标签: postgresql

我如何撰写查询,告诉我指定日期(e.g. 2015-01-15)是否属于任何' from_date' ' to_date'下表中的期间?这里有什么特别之处,我只希望每个id返回一行。

id | from_date  | to_date
a  | 2015-01-01 | 2015-01-30
a  | 2015-04-01 | 2015-04-30

当前查询:

select id,
case when from_date <= '2015-01-15'
     and to_date >= '2015-01-15'
     then 'true' else 'false' end as status
from dates

目前的结果:

id | status
a  | true
a  | false

期望的结果:

id | status
a  | true

2 个答案:

答案 0 :(得分:1)

我猜你正在寻找的是DISTINCT ON。 id列上的DISTINCT ON仅为每个id输出一行。

尝试以下查询

True

输出到,

string pathcpnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + textBox1.Text + ";Extended Properties=\""Excel 8.0;HDR=Yes;IMEX=1;";";

OleDbConnection con = new OleDbConnection(pathcpnn);

OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select * from[" + textBox2.Text + "$]", con);

myDataAdapter.Fill(dt);

DAtagridview1.datasource=dt;

答案 1 :(得分:0)

select id,'true' as status
from dates
where '2015-01-15' between from_date and to_date;