1

在 T-SQL 中,您可以执行以下操作:

Select from Table where dateField is Date = true;

有没有办法在 postgres 中做到这一点。具体来说,

Select * from "Table" where to_timestamp("dateField", 'MM-DD-YYYY 24HH:MI') is Possible;
4

1 回答 1

2

首先,您不应该在 varchar 列中存储日期或时间戳(如果您有,则不需要此解决方法)。

您可以轻松地创建一个检查这一点的函数:

create or replace function is_date(to_test varchar, format varchar)
  returns boolean
  language plpgsql
as
$$
declare  
  temp_result timestamp;
begin 
  temp_result := to_timestamp(to_test, format);
  return true;
exception 
  when others then
    return false;
end;
$$

然后你可以像这样使用它:

Select 
from some_table 
where is_date(some_column, 'MM-DD-YYYY 24HH:MI');

您还可以扩展该功能以测试不同的日期/时间戳格式。

但是避免这种情况的最好方法是从一开始就使用 a dateortimestamp列。

于 2013-11-02T16:46:38.093 回答