• O stronie
  • Projekty
    • CodeIgniter IMG
    • CodeIgniter minify
    • Simple FAQ
  • Narzędzia
    • GeoIP
    • konwerter WebP
    • Tools
    • Sprawdź szybkość strony
  • Linkownia
  • Kontakt
blog web developera

blog web developera

  • O stronie
  • Projekty
    • CodeIgniter IMG
    • CodeIgniter minify
    • Simple FAQ
  • Narzędzia
    • GeoIP
    • konwerter WebP
    • Tools
    • Sprawdź szybkość strony
  • Linkownia
  • Kontakt

Jak poradzić sobie z null w GO

Dzisiaj miałem okazję wyprodukować trochę kody w GO, który miał coś wyciągać z MySQL. Dane pochodziły z tabeli, która miała strukturę z polami typu data datetime DEFAULT NULL. Problem pojawił się przy skanowaniu rekordów:

panic: sql: Scan error on column index 2: unsupported Scan, storing driver.Value type <nil> into type *time.Time

Problem pojawił się ponieważ skaner nie potrafi przerobić null’a na datę. Generalnie można skorzystać z typu mysql.NullTime który znajduje się w pakiecie database/sql – dodaje on dodatkowe pole typu “Valid” które wskazuje na to, czy wartość jest typu NULL czy nie. Podobna obsługa jest dla pól typu string i numerycznych.

Problem pojawia się kiedy spróbujemy ten typ przerobić na JSON’a:

Data:mysql.NullTime{Time:time.Time{sec:0, nsec:0, loc:(*time.Location)(nil)}, Valid:false}

I można tutaj kombinować z nadpisywanie interfaceów, albo skorzystać z pakietu: gopkg.in/guregu/null.v3. Ogarnia on sprawę za nas – wystarczy zmienić tylko typu na null.String

23/03/2020 GoLang
No Comments
golang

Jak (nie) sprzedawać w internecie

Dobór palety kolorów

Dodaj komentarz Anuluj pisanie odpowiedzi

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Szukaj

Kategorie

  • Ogólnie
    • Humor
    • Pamiętnik malkontenta
  • Programowanie
    • CodeIgniter
    • CSS
    • GoLang
    • JavaScript
    • PHP
  • Przydatne
    • CMS
    • Przedruki
  • Sprzęt
    • Mac
    • Serwery

Reklamy





Digital Ocean

Popularne wpisy

  • Lista publicznych API
  • HP LaserJet 1018 i Mac OS X
  • Jak używać SCP
  • Dowcipy o Francuzach
  • Jak sprawdzić prędkość WiFi na Mac
  • Kopiowanie tablic w JavaScript
  • Lista symboli HTML kopiuj i wklej
  • 10 symboli HTML które powinieneś znać
  • Szybki podgląd PSD, AI i EPS
  • Alkohol
Dumnie wspierane przez WordPressa | Motyw: Neblue by NEThemes.