我知道資料型別是 TIMESTAMP、DATE、TIME 等。我也知道我應該使用 TIMESTAMP,因為它可以跟蹤任何更改。
我從前端帶來日期,在我的反應組件中日期是
const dateTime = new Date().toLocaleString("en-GB")
其輸出為“24/10/2021, 14:37:49”
如果我將資料型別設定為 TIMESTAMP,它會給我一個錯誤。
問題是接受上述日期和時間格式的資料型別應該是什么。我試過 DATETIME 但它給出了一個錯誤,說 DATETIME 不存在。SQL查詢:
ALTER TABLE user_info_2 ADD date_col1 TIMEDATE;
我是 PostGreSql 的新手,因此感謝您的任何幫助。提前致謝!
uj5u.com熱心網友回復:
問題不是格式本身,而是默認的 PostgresDatestyle日期順序是:
--Note the MDY date ordering
show datestyle ;
DateStyle
-----------
ISO, MDY
select '24/10/2021, 14:37:49'::timestamptz;
ERROR: date/time field value out of range: "24/10/2021, 14:37:49"
LINE 1: select '24/10/2021, 14:37:49'::timestamptz;
---Change date ordering to put date first
set datestyle = iso,DMY;
show datestyle ;
DateStyle
-----------
ISO, DMY
(1 row)
select '24/10/2021, 14:37:49'::timestamptz;
timestamptz
------------------------
2021-10-24 14:37:49-07
所以你有兩個選擇:
DateStyle在 postgresql.conf 中更改“永久”或臨時使用set datestyle = iso,DMY;使用 ISO 格式:
select '2021-10-24, 14:37:49'::timestamptz;
timestamptz
------------------------
2021-10-24 14:37:49-07
我會說 2) 是首選,因為 Postgres 不存盤格式,因此輸入資料的方式確實很重要。如果日期順序對您的用戶很重要,則在向他們展示輸出時進行適當的格式化。
uj5u.com熱心網友回復:
正如我所見,使用Date().toLocaleString()將回傳一個字串型別。您應該使用 Date 物件來持久化。對于 Postgres 中的列型別,請使用TIMESTAMP。
typeof(Date().toLocaleString("en-GB"))
輸出將是“字串”...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/335577.html
標籤:javascript 反应 PostgreSQL 约会时间
下一篇:修改字串中兩個符號之間的字符
