Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách phân tích thời gian từ cơ sở dữ liệu

Giả sử bạn đang sử dụng go-sql-driver/mysql bạn có thể yêu cầu trình điều khiển quét DATE và DATETIME tự động thành time.Time , bằng cách thêm parseTime=true vào chuỗi kết nối của bạn.

Xem https://github.com/go-sql-driver/mysql# thời gian hỗ trợ

Mã mẫu:

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)

Lưu ý rằng điều này hoạt động với current_timestamp nhưng không phải với current_time . Nếu bạn phải sử dụng current_time bạn sẽ cần tự mình phân tích cú pháp.

Đây là cách bạn thực hiện phân tích cú pháp tùy chỉnh:

Đầu tiên, chúng tôi xác định một byte gói [] kiểu tùy chỉnh, byte này sẽ tự động phân tích cú pháp các giá trị thời gian:

type rawTime []byte

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

Và trong mã quét, chúng tôi chỉ thực hiện điều này:

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. Công cụ tốt nhất để đồng bộ hóa cơ sở dữ liệu MySQL

  2. Kỹ thuật chuyển tiếp MySQL Workbench Lỗi 1064

  3. Cách thực thi mã PHP định kỳ theo cách tự động

  4. sql kéo một hàng cho hàng tiếp theo hoặc hàng trước của hàng hiện tại

  5. MySQL:Cập nhật tất cả các hàng trong bảng kết quả khớp với một truy vấn khác