2013-08-12 169 views
0

我得到的最小值和最大值从文本列日期以查询其善良的人帮助我得到there这样的:的PostgreSQL,最小值和最大值之间的行数日期

SELECT max(to_date(nullif(mydatetxt,''), 'DD.MM.YYYY')), 
min(to_date(nullif(mydatetxt,''), 'DD.MM.YYYY')) 
FROM table_name; 

我怎样才能得到全部的COUNT匹配最小和最大日期之间的行(写在文本列中)?

+2

这个模式让我想哭。一个非常好的开始是准备,调整你的查询,当你准备好做一个'ALTER TABLE table_name ALTER COLUMN mydatetext TYPE date USING(to_date(nullif(mydatetxt,''),'DD.MM.YYYY')) )'把它变成一个真正的日期列,你可以理智地工作。 –

+0

实际上'包括最小和最大日期在内的所有匹配行的COUNT数只是count(*):) –

回答

0

你真正需要做的是:

SELECT count(*), max(to_date(nullif(mydatetxt,''), 'DD.MM.YYYY')), min(to_date(nullif(mydatetxt,''), 'DD.MM.YYYY')) 
    FROM table_name; 

或者,也许我误解了。真的,如果可能的话,应该将日期字段移到日期类型。如果您必须处理垃圾输入,请使用视图和更新触发器来执行此操作。

相关问题