sql >> データベース >  >> RDS >> Mysql

データベースから時間を解析する方法

    go-sql-driver/mysqlを使用していると仮定します DATEとDATETIMEをtime.Timeに自動的にスキャンするようにドライバーに依頼できます。 、parseTime=trueを追加する 接続文字列に。

    https://github.com/go-sql-driver/mysql#を参照してくださいtimetime-support

    コード例:

    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)
    

    これはcurrent_timestampで機能することに注意してください ただし、current_timeではありません 。 current_timeを使用する必要がある場合 自分で解析を行う必要があります。

    これがカスタム解析の方法です:

    まず、時間値を自動的に解析するカスタムタイプのラッピング[]バイトを定義します。

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

    そして、スキャンコードではこれを行うだけです:

    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. MicrosoftAccessでデータを管理する

    2. MySQL – SELECT SLEEP()を使用して数秒待つ

    3. 見積もりに注意を払う

    4. ビューで使用されているエイリアスの実際の列名を見つけますか?