25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

23 lines
578 B

  1. package model
  2. import "github.com/QuantumNous/new-api/common"
  3. // GetDBTimestamp returns a UNIX timestamp from database time.
  4. // Falls back to application time on error.
  5. func GetDBTimestamp() int64 {
  6. var ts int64
  7. var err error
  8. switch {
  9. case common.UsingPostgreSQL:
  10. err = DB.Raw("SELECT EXTRACT(EPOCH FROM NOW())::bigint").Scan(&ts).Error
  11. case common.UsingSQLite:
  12. err = DB.Raw("SELECT strftime('%s','now')").Scan(&ts).Error
  13. default:
  14. err = DB.Raw("SELECT UNIX_TIMESTAMP()").Scan(&ts).Error
  15. }
  16. if err != nil || ts <= 0 {
  17. return common.GetTimestamp()
  18. }
  19. return ts
  20. }