| 
									
										
										
										
											2025-01-10 00:09:25 +08:00
										 |  |  |  | package lzUtils | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | import ( | 
					
						
							|  |  |  |  | 	"database/sql" | 
					
						
							|  |  |  |  | 	"time" | 
					
						
							|  |  |  |  | ) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // StringToNullString 将 string 转换为 sql.NullString | 
					
						
							|  |  |  |  | func StringToNullString(s string) sql.NullString { | 
					
						
							|  |  |  |  | 	return sql.NullString{ | 
					
						
							|  |  |  |  | 		String: s, | 
					
						
							|  |  |  |  | 		Valid:  s != "", | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // NullStringToString 将 sql.NullString 转换为 string | 
					
						
							|  |  |  |  | func NullStringToString(ns sql.NullString) string { | 
					
						
							|  |  |  |  | 	if ns.Valid { | 
					
						
							|  |  |  |  | 		return ns.String | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	return "" | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // TimeToNullTime 将 time.Time 转换为 sql.NullTime | 
					
						
							|  |  |  |  | func TimeToNullTime(t time.Time) sql.NullTime { | 
					
						
							|  |  |  |  | 	return sql.NullTime{ | 
					
						
							|  |  |  |  | 		Time:  t, | 
					
						
							|  |  |  |  | 		Valid: !t.IsZero(), // 仅当 t 不是零值时才设置为有效 | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // NullTimeToTime 将 sql.NullTime 转换为 time.Time | 
					
						
							|  |  |  |  | func NullTimeToTime(nt sql.NullTime) time.Time { | 
					
						
							|  |  |  |  | 	if nt.Valid { | 
					
						
							|  |  |  |  | 		return nt.Time | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	return time.Time{} // 返回零值时间 | 
					
						
							|  |  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-03-07 03:48:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | // Int64ToNullInt64 将 int64 转换为 sql.NullInt64 | 
					
						
							|  |  |  |  | func Int64ToNullInt64(i int64) sql.NullInt64 { | 
					
						
							|  |  |  |  | 	return sql.NullInt64{ | 
					
						
							|  |  |  |  | 		Int64: i, | 
					
						
							|  |  |  |  | 		Valid: i != 0, // 仅当 i 非零时才设置为有效 | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // NullInt64ToInt64 将 sql.NullInt64 转换为 int64 | 
					
						
							|  |  |  |  | func NullInt64ToInt64(ni sql.NullInt64) int64 { | 
					
						
							|  |  |  |  | 	if ni.Valid { | 
					
						
							|  |  |  |  | 		return ni.Int64 | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	return 0 // 返回零值 int64 | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Float64ToNullFloat64 将 float64 转换为 sql.NullFloat64 | 
					
						
							|  |  |  |  | // Valid 字段在 f 非零时设置为有效(注意:NaN 会被视为有效,需结合业务场景使用) | 
					
						
							|  |  |  |  | func Float64ToNullFloat64(f float64) sql.NullFloat64 { | 
					
						
							|  |  |  |  | 	return sql.NullFloat64{ | 
					
						
							|  |  |  |  | 		Float64: f, | 
					
						
							|  |  |  |  | 		Valid:   f != 0, | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // NullFloat64ToFloat64 将 sql.NullFloat64 转换为 float64 | 
					
						
							|  |  |  |  | // 当 Valid 为 false 时,返回 float64 零值 | 
					
						
							|  |  |  |  | func NullFloat64ToFloat64(nf sql.NullFloat64) float64 { | 
					
						
							|  |  |  |  | 	if nf.Valid { | 
					
						
							|  |  |  |  | 		return nf.Float64 | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	return 0.0 | 
					
						
							|  |  |  |  | } |