Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara mengurai waktu dari database

Dengan asumsi Anda menggunakan go-sql-driver/mysql Anda dapat meminta pengemudi untuk memindai DATE dan DATETIME secara otomatis ke time.Time , dengan menambahkan parseTime=true ke string koneksi Anda.

Lihat https://github.com/go-sql-driver/mysql# dukungan waktu

Contoh kode:

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)

Perhatikan bahwa ini berfungsi dengan current_timestamp tapi tidak dengan current_time . Jika Anda harus menggunakan current_time Anda harus melakukan penguraian sendiri.

Inilah cara Anda melakukan penguraian khusus:

Pertama, kita mendefinisikan pembungkus tipe kustom []byte, yang secara otomatis akan mengurai nilai waktu:

type rawTime []byte

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

Dan dalam kode pemindaian kami hanya melakukan ini:

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. kesalahan prosedur tersimpan mysql (1172, 'Hasil terdiri dari lebih dari satu baris')

  2. Mengubah Tabel InnoDB MySQL Besar

  3. group_concat MYSQL baris baru

  4. Beberapa sisipan dengan PDO

  5. MySQL/MariaDB - pesan dengan subquery di dalam