postgresql - Postgres 无效的日期格式

标签 postgresql datetime

下面是我数据库中某列的一些日期示例。目前,这些日期值存储在 varchar 中,我打算将这些值设置为另一个表中的时间戳。

如何设置默认规则以将所有无效日期格式转换为 NULL 值或某种“00/00/0000 00:00:00”格式?

pickup_time 

01/01/2016 07:35:00 
00:00:00
31/12/2015
07:35:00 

期望:

pickup_time 

01/01/2016 07:35:00 
NULL
31/12/2015 00:00:00
00/00/0000 07:35:00 

最佳答案

好的,这是基本的想法,因此您需要为每个要处理的案例设置一个带有正则表达式的 if/else(或找出字符串模式的东西)。

create or replace function my_super_converter_to_timestamp(arg text)
returns timestamp language plpgsql
as $$
begin
    begin
        -- if(arg like '00:00:00') do something ...
        return arg::timestamp;
    exception when others then
        return null;
    end;
end $$;

关于postgresql - Postgres 无效的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47763779/

相关文章:

sql 查询 double - null >0 不返回任何记录

python - 如何根据Python中行值的条件应用列中的值

sql - 交换到以空白表结束的列

postgresql - pytest_postgresql 示例引发导入错误 psycopg

Django从日期时间开始按日期分组

javascript - Firestore : Timestamp vs date string "yyyy-mm-dd". 什么更小(文件大小)?

datetime - Tibco Spotfire,如何根据当前日期插入昨天的列

mysql - 应该在此处索引哪些键以使此查询最佳

ruby-on-rails - 如何让对象链接到对象?

java - Spring如何在Spring Boot中设置数据源