MCPcopy
hub / github.com/go-sql-driver/mysql / parseBinaryDateTime

Function parseBinaryDateTime

utils.go:230–266  ·  view source on GitHub ↗
(num uint64, data []byte, loc *time.Location)

Source from the content-addressed store, hash-verified

228}
229
230func parseBinaryDateTime(num uint64, data []byte, loc *time.Location) (driver.Value, error) {
231 switch num {
232 case 0:
233 return time.Time{}, nil
234 case 4:
235 return time.Date(
236 int(binary.LittleEndian.Uint16(data[:2])), // year
237 time.Month(data[2]), // month
238 int(data[3]), // day
239 0, 0, 0, 0,
240 loc,
241 ), nil
242 case 7:
243 return time.Date(
244 int(binary.LittleEndian.Uint16(data[:2])), // year
245 time.Month(data[2]), // month
246 int(data[3]), // day
247 int(data[4]), // hour
248 int(data[5]), // minutes
249 int(data[6]), // seconds
250 0,
251 loc,
252 ), nil
253 case 11:
254 return time.Date(
255 int(binary.LittleEndian.Uint16(data[:2])), // year
256 time.Month(data[2]), // month
257 int(data[3]), // day
258 int(data[4]), // hour
259 int(data[5]), // minutes
260 int(data[6]), // seconds
261 int(binary.LittleEndian.Uint32(data[7:11]))*1000, // nanoseconds
262 loc,
263 ), nil
264 }
265 return nil, fmt.Errorf("invalid DATETIME packet length %d", num)
266}
267
268func appendDateTime(buf []byte, t time.Time, timeTruncate time.Duration) ([]byte, error) {
269 if timeTruncate > 0 {

Callers 1

readRowMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected