在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;
答案 0 :(得分: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');
您还可以扩展该功能以测试不同的日期/时间戳格式。
但避免这种情况的最佳方法是从头开始使用date
或timestamp
列。