Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przeanalizować czas z bazy danych

Zakładając, że używasz go-sql-driver/mysql możesz poprosić kierowcę o automatyczne zeskanowanie DATE i DATETIME do time.Time , dodając parseTime=true do ciągu połączenia.

Zobacz https://github.com/go-sql-driver/mysql# wsparcie czasowe

Przykładowy kod:

db, err := sql.Open("mysql", "root:@/?parseTime=true")
if err != nil {
    panic(err.Error()) // Just for example purpose. You should use proper error handling instead of panic
}
defer db.Close()

var myTime time.Time
rows, err := db.Query("SELECT current_timestamp()")

if rows.Next() {
    if err = rows.Scan(&myTime); err != nil {
        panic(err)
    }
}

fmt.Println(myTime)

Zauważ, że działa to z current_timestamp ale nie z current_time . Jeśli musisz użyć current_time musisz sam przeprowadzić analizę.

W ten sposób przeprowadzasz niestandardowe parsowanie:

Najpierw definiujemy niestandardowy typ zawijania []bajt, który automatycznie analizuje wartości czasu:

type rawTime []byte

func (t rawTime) Time() (time.Time, error) {
    return time.Parse("15:04:05", string(t))
}

A w kodzie skanującym po prostu robimy to:

var myTime rawTime
rows, err := db.Query("SELECT current_time()")

if rows.Next() {
    if err = rows.Scan(&myTime); err != nil {
        panic(err)
    }
}

fmt.Println(myTime.Time())



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobierz wygenerowany uuid po wstawieniu php

  2. Jak uzyskać dane z innej tabeli za pomocą danych kolumnowych z innej tabeli?

  3. Jak działa funkcja RIGHT() w MySQL

  4. Jak ustawić domyślną wartość pola na „0000-00-00 00:00:00”?

  5. Jak zaimplementować system filtrów w SQL?