12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package dialects
- import (
- "time"
- "xorm.io/xorm/schemas"
- )
- func FormatTime(dialect Dialect, sqlTypeName string, t time.Time) (v interface{}) {
- switch sqlTypeName {
- case schemas.Time:
- s := t.Format("2006-01-02 15:04:05")
- v = s[11:19]
- case schemas.Date:
- v = t.Format("2006-01-02")
- case schemas.DateTime, schemas.TimeStamp, schemas.Varchar:
- v = t.Format("2006-01-02 15:04:05")
- case schemas.TimeStampz:
- if dialect.URI().DBType == schemas.MSSQL {
- v = t.Format("2006-01-02T15:04:05.9999999Z07:00")
- } else {
- v = t.Format(time.RFC3339Nano)
- }
- case schemas.BigInt, schemas.Int:
- v = t.Unix()
- default:
- v = t
- }
- return
- }
- func FormatColumnTime(dialect Dialect, defaultTimeZone *time.Location, col *schemas.Column, t time.Time) (v interface{}) {
- if t.IsZero() {
- if col.Nullable {
- return nil
- }
- return ""
- }
- if col.TimeZone != nil {
- return FormatTime(dialect, col.SQLType.Name, t.In(col.TimeZone))
- }
- return FormatTime(dialect, col.SQLType.Name, t.In(defaultTimeZone))
- }
|