我正在抓取一個 excel 表并將其推送到 postgresql 資料庫。推送時,腳本將“文本”資料型別分配給所有列。表中有一些日期時間欄位,所以我必須以日期格式更改它們。我寫的查詢是這樣的:
alter table table_name
alter column column_name type DATE
using to_timestamp(column_name, 'DD/MM/YYYY HH24:MI:SS');
這里的問題是,在 excel 表中,有一些空行。當我觸發此查詢時,它會為空行分配一個默認時間戳。如何在更改表格時跳過空行?
提前致謝。
uj5u.com熱心網友回復:
像這樣的選擇會導致
select to_timestamp('', 'DD/MM/YYYY HH24:MI:SS');
| to_timestamp |
|---|
| 0001-01-01 00:00:00-00:01:15 公元前 |
小提琴
跳過空值(非空值)在您的使用中使用 nullif
create table test (
test varchar
);
insert into test values (''), (null) ,('10/10/2022')
select * from test
| 測驗 |
|---|
| 無效的 |
| 2022 年 10 月 10 日 |
alter table test
alter column test type DATE
using to_timestamp(nullif(test,''), 'DD/MM/YYYY HH24:MI:SS');
select * from test
| 測驗 |
|---|
| 無效的 |
| 無效的 |
| 2022-10-10 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/525651.html
標籤:PostgreSQL
上一篇:在perl中使用變數呼叫sed
