2017-02-04 3 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"` 
} 

그러나, 구조체를 가지고 나는 2006-01-02T15 ""로 "" ""시간을 구문 분석 "데이터베이스에 10시 0분 0초를이 구조체를 삽입 할 때 : 04 : 05Z07 : 00" ":"2006 ""}과 같이 구문 분석 할 수 없습니다.

아마도 StartTime 및 EndTime 필드를 Time 유형으로 인식하지는 않지만 대신 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

귀하의 코드 내 환경과 제대로 데이터베이스에 데이터를 삽입 할 수 작동합니다. 오류 메시지에서 '건물'을 만들 때 오류가 발생하는 것으로 보입니다. 코드를 붙여 넣을 수 있습니까? – ymonad

+0

@ymonad, 다시 확인할 수 있습니까? –

+0

TIME, DATE 및 TIMESTAMP에 대한 start_time 및 end_time 유형을 설정하려고 시도했으며 모든 작업은 적어도 time.Now()에 대해 작동합니다. 여기에 코드가 있습니다 : https://gist.github.com/anonymous/5014d44ca999144ff06ffc05aa4acee3 – ymonad

답변