2017-02-04 2756 views
1

我正在使用Postgres作爲數據庫。 我有一個結構Golang gorm時間數據類型轉換

type Building struct { 
ID  int `json:"id,omitempty"` 
Name  string `gorm:"size:255" json:"name,omitempty"` 
Lon  string `gorm:"size:64" json:"lon,omitempty"` 
Lat  string `gorm:"size:64" json:"lat,omitempty"` 
StartTime time.Time `gorm:"type:time" json:"start_time,omitempty"` 
EndTime time.Time `gorm:"type:time" json:"end_time,omitempty"` 
} 

然而,當我嘗試這個結構插入到數據庫「解析時間‘’10:00:00」,」如‘’2006-01-02T15:04:05Z07:00" 「:can not parse」0:00「」as「2006」「}

可能它不能識別StartTime和EndTime字段作爲時間類型,而是使用Timestamp來代替如何指定這些字段是Time類型?

PS我這是怎麼創建

大廈
if err = db.Create(&building).Error; err != nil { 
    return database.InsertResult{}, err 
    } 
建表的3210

SQL代碼中提到

DROP TABLE IF EXISTS building CASCADE; 
CREATE TABLE building(
    id SERIAL, 
    name VARCHAR(255) NOT NULL , 
    lon VARCHAR(31) NOT NULL , 
    lat VARCHAR(31) NOT NULL , 
    start_time TIME NOT NULL , 
    end_time TIME NOT NULL , 
    PRIMARY KEY (id) 
); 
+0

你的代碼在我的環境,並能夠正確的數據插入到數據庫中。從錯誤消息中可以看出,當你創建'building'時,錯誤就發生了。你可以粘貼代碼嗎? – ymonad

+0

@ymonad,你能再次檢查嗎? –

+0

我已經嘗試過設置TIME,DATE和TIMESTAMP的start_time和end_time類型,以及所有的作品,至少''time.Now()'。這裏是代碼:https://gist.github.com/anonymous/5014d44ca999144ff06ffc05aa4acee3 – ymonad

回答