Art*_*kes 4 sql-server postgresql validation date
我有一个远程 PG 数据源,无法在其中创建自定义函数。我必须将 PG 数据转储到 MSSQL Server 2008 R2 上的 unicode 表中。我需要一个内联 PostgreSQL 语句,将无效日期替换为“1900-01-01”之类的内容。
我已经进行了广泛的谷歌搜索但无济于事......谢谢。
PostgreSQL 的时间戳范围比 SQL Server 的日期时间范围大得多。在 PostgreSQL 中,“0214-06-19 00:00:00”是有效的时间戳。“0214-06-19 00:00:00 BC”也是如此。
我不清楚结果应该是日期还是时间戳。但这显示了您应该如何解决 PostgreSQL 中的问题
with data (ts) as (
values (timestamp '0214-06-19 00:00:00'), ('1900-01-01 08:00')
)
select
ts as source_ts,
case when ts < timestamp '1900-01-01' then timestamp '1900-01-01'
else ts
end as altered_ts
from data;
Run Code Online (Sandbox Code Playgroud)
源_ts 更改_ts -- 0214-06-19 00:00:00 1900-01-01 00:00:00 1900-01-01 08:00:00 1900-01-01 08:00:00
假设 1900 年之前的每个日期都应该是 1900-01-01 是有风险的。值“0214-06-19”可能是 2014-06-19 的拼写错误。