{"record":{"id":"11e345990e47b314","repo":"jackc/pgx","slug":"cannot-scan-null-into-time-time","errorCode":null,"errorMessage":"cannot scan NULL into *time.Time","messagePattern":"cannot scan NULL into \\*time\\.Time","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pgtype/builtin_wrappers.go","lineNumber":402,"sourceCode":"\nfunc (w *stringWrapper) ScanText(v Text) error {\n\tif !v.Valid {\n\t\treturn fmt.Errorf(\"cannot scan NULL into *string\")\n\t}\n\n\t*w = stringWrapper(v.String)\n\treturn nil\n}\n\nfunc (w stringWrapper) TextValue() (Text, error) {\n\treturn Text{String: string(w), Valid: true}, nil\n}\n\ntype timeWrapper time.Time\n\nfunc (w *timeWrapper) ScanDate(v Date) error {\n\tif !v.Valid {\n\t\treturn fmt.Errorf(\"cannot scan NULL into *time.Time\")\n\t}\n\n\tswitch v.InfinityModifier {\n\tcase Finite:\n\t\t*w = timeWrapper(v.Time)\n\t\treturn nil\n\tcase Infinity:\n\t\treturn fmt.Errorf(\"cannot scan Infinity into *time.Time\")\n\tcase NegativeInfinity:\n\t\treturn fmt.Errorf(\"cannot scan -Infinity into *time.Time\")\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid InfinityModifier: %v\", v.InfinityModifier)\n\t}\n}\n\nfunc (w timeWrapper) DateValue() (Date, error) {\n\treturn Date{Time: time.Time(w), Valid: true}, nil\n}","sourceCodeStart":384,"sourceCodeEnd":420,"githubUrl":"https://github.com/jackc/pgx/blob/ec1a0befd22592cffffdeeb0a50311b506372f4c/pgtype/builtin_wrappers.go#L384-L420","documentation":"ScanDate was given a NULL Date while scanning into *time.Time, which has no NULL representation. Null guard in timeWrapper; the date column is NULL but the destination is a plain time.Time rather than pgtype.Date or a nullable wrapper.","triggerScenarios":"Thrown at pgtype/builtin_wrappers.go:402 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use COALESCE with a sentinel date in the query","Scan into pgtype.Date or *time.Time to handle NULLs","Ensure the column is NOT NULL"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ec1a0befd22592cffffdeeb0a50311b506372f4c","analyzedAt":"2026-08-04T22:52:11.263Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}