diff --git a/callbacks/update.go b/callbacks/update.go index 3196c436..36bec35a 100644 --- a/callbacks/update.go +++ b/callbacks/update.go @@ -233,10 +233,10 @@ func ConvertToAssignments(stmt *gorm.Statement) (set clause.Set) { value = stmt.DB.NowFunc().UnixNano() } else if field.AutoUpdateTime == schema.UnixMillisecond { value = stmt.DB.NowFunc().UnixNano() / 1e6 - } else if field.GORMDataType == schema.Time { - value = stmt.DB.NowFunc() - } else { + } else if field.AutoUpdateTime == schema.UnixSecond { value = stmt.DB.NowFunc().Unix() + } else { + value = stmt.DB.NowFunc() } isZero = false } diff --git a/schema/field.go b/schema/field.go index 5dbc96f1..7beed30d 100644 --- a/schema/field.go +++ b/schema/field.go @@ -24,6 +24,7 @@ const ( UnixSecond TimeType = 1 UnixMillisecond TimeType = 2 UnixNanosecond TimeType = 3 + DefaultTime TimeType = 4 //DefaultTime is time.Time ) const ( @@ -255,8 +256,10 @@ func (schema *Schema) ParseField(fieldStruct reflect.StructField) *Field { field.AutoCreateTime = UnixNanosecond } else if strings.ToUpper(v) == "MILLI" { field.AutoCreateTime = UnixMillisecond - } else { + } else if strings.ToUpper(v) == "UNIX" { field.AutoCreateTime = UnixSecond + } else { + field.AutoCreateTime = DefaultTime } } @@ -265,8 +268,10 @@ func (schema *Schema) ParseField(fieldStruct reflect.StructField) *Field { field.AutoUpdateTime = UnixNanosecond } else if strings.ToUpper(v) == "MILLI" { field.AutoUpdateTime = UnixMillisecond - } else { + } else if strings.ToUpper(v) == "UNIX" { field.AutoUpdateTime = UnixSecond + } else { + field.AutoUpdateTime = DefaultTime } }