23 lines
578 B
Go
23 lines
578 B
Go
package model
|
|
|
|
import "github.com/QuantumNous/new-api/common"
|
|
|
|
// GetDBTimestamp returns a UNIX timestamp from database time.
|
|
// Falls back to application time on error.
|
|
func GetDBTimestamp() int64 {
|
|
var ts int64
|
|
var err error
|
|
switch {
|
|
case common.UsingPostgreSQL:
|
|
err = DB.Raw("SELECT EXTRACT(EPOCH FROM NOW())::bigint").Scan(&ts).Error
|
|
case common.UsingSQLite:
|
|
err = DB.Raw("SELECT strftime('%s','now')").Scan(&ts).Error
|
|
default:
|
|
err = DB.Raw("SELECT UNIX_TIMESTAMP()").Scan(&ts).Error
|
|
}
|
|
if err != nil || ts <= 0 {
|
|
return common.GetTimestamp()
|
|
}
|
|
return ts
|
|
}
|