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');

関数を拡張して、さまざまな日付/タイムスタンプ形式をテストすることもできます。

ただし、これを回避する最善の方法は、最初からdateortimestamp列を使用することです。

于 2013-11-02T16:46:38.093 に答える