2011-11-29 20 views
3

我正在查詢外部API,並且希望在轉移到生產之前在測試服務器上測試數據插入。日期時間變量類型在PostgreSQL 9.0.x中不推薦使用?

目前,我試圖在Postgres裏的shell執行以下語句:

CREATE TABLE referrals (client_id VARCHAR(36), device_id VARCHAR(100), conversion_time DATETIME, acquisition_cost MONEY); 

但它一直未能在DATETIME

由於這不起作用,會時間戳嗎?如果是這樣,我該如何修改時間戳的默認行爲以採取預先格式化的日期和時間?

P.S.如果在數據庫管理員StackExchange上更好地詢問,請標記而不是downvote。

回答

6
CREATE TABLE referrals (
    client_id text, 
    device_id text, 
    conversion_time timestamp, 
    acquisition_cost money 
); 

你並不需要添加without time zonethat is the default

我在示例中使用text類型,而不是varchar,它帶有長度修飾符,因爲這通常是更好的選擇。你當然可以使用varchar(n),沒問題。

日期/時間戳值接受的字符串輸入的格式取決於您的locale settings。精細手工的章節Data Type Formatting Functions

SELECT to_timestamp('05 Dec 2000', 'DD Mon YYYY') 

更多:爲了確保特定格式的正確解釋,獨立的區域設置,您可以使用to_dateto_timestamp

0

我相信你正在尋找的數據類型爲timestamp without time zone,那麼改變你的DDL到:

CREATE TABLE referrals (
    client_id VARCHAR(36), 
    device_id VARCHAR(100), 
    conversion_time TIMESTAMP without time zone, 
    acquisition_cost MONEY 
); 
相關問題