スキャン ペア: []uint8 -> *time.Time" エラー? " /> スキャン ペア: []uint8 -> *time.Time" エラー? " />
データベースを使用する場合、データを取得しようとするとエラーが発生するのが一般的です。この特定のケースでは、エラー メッセージ「サポートされていません」が表示されます。ドライバー ->スキャンペア: []uint8 -> *time.Time" は、データベース ドライバーが取得したデータ (この場合はバイト配列) を time.Time 値に自動的に変換できないことを示します。
この問題を修正するには、parseTime を利用できます。接続文字列内のパラメータを parseTime=true に設定すると、MySQL の DATE 値と DATETIME 値を time.Time オブジェクトに自動的に解析するようドライバーに指示します。
例:
db, err := sql.Open("mysql", "root:@/?parseTime=true")
parseTime を有効にすることで、ドライバーは時間値をシームレスに変換し、time.Time 変数への直接割り当てを可能にします。
SQL ステートメントの例:
var myTime time.Time rows, err := db.Query("SELECT current_timestamp()")
注: このアプローチは current_timestamp では機能しますが、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()")
fmt.Println(myTime.Time())
これらの手順に従うことで、データベースから時間値を効果的に解析し、処理することができます。さまざまなデータ形式を簡単に使用できます。
以上がデータベースから時間を解析する方法: 「サポートされていないドライバー -> スキャン ペア: []uint8 -> *time.Time」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。