123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- package sdk
- import (
- "fmt"
- "git.sxidc.com/go-tools/utils/reflectutils"
- "strings"
- "time"
- )
- const (
- sqlResultTimeMicroFormat = "2006-01-02T15:04:05.000000+08:00"
- sqlResultTimeMilliFormat = "2006-01-02T15:04:05.000+08:00"
- sqlResultTimeSecFormat = "2006-01-02T15:04:05+08:00"
- )
- func ParseSqlResultTimeStr(timeStr string) (time.Time, error) {
- var layout string
- if strings.HasSuffix(timeStr, ".000000+08:00") {
- layout = sqlResultTimeMicroFormat
- } else if strings.HasSuffix(timeStr, ".000+08:00") {
- layout = sqlResultTimeMilliFormat
- } else {
- layout = sqlResultTimeSecFormat
- }
- return time.ParseInLocation(layout, timeStr, time.Local)
- }
- type SqlResult map[string]any
- func (result SqlResult) ColumnValueStringAsTime(columnName string) time.Time {
- value, ok := result[columnName].(string)
- if !ok {
- return time.Time{}
- }
- t, err := ParseSqlResultTimeStr(value)
- if err != nil {
- return time.Time{}
- }
- return t
- }
- func (result SqlResult) ColumnValueBool(columnName string) bool {
- value, err := reflectutils.ToBool(result[columnName])
- if err != nil {
- fmt.Println(err)
- return false
- }
- return value
- }
- func (result SqlResult) ColumnValueString(columnName string) string {
- value, err := reflectutils.ToString(result[columnName])
- if err != nil {
- fmt.Println(err)
- return ""
- }
- return value
- }
- func (result SqlResult) ColumnValueInt(columnName string) int {
- value, err := reflectutils.ToInt64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return int(value)
- }
- func (result SqlResult) ColumnValueInt8(columnName string) int8 {
- value, err := reflectutils.ToInt64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return int8(value)
- }
- func (result SqlResult) ColumnValueInt16(columnName string) int16 {
- value, err := reflectutils.ToInt64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return int16(value)
- }
- func (result SqlResult) ColumnValueInt32(columnName string) int32 {
- value, err := reflectutils.ToInt64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return int32(value)
- }
- func (result SqlResult) ColumnValueInt64(columnName string) int64 {
- value, err := reflectutils.ToInt64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return value
- }
- func (result SqlResult) ColumnValueUint(columnName string) uint {
- value, err := reflectutils.ToUint64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return uint(value)
- }
- func (result SqlResult) ColumnValueUint8(columnName string) uint8 {
- value, err := reflectutils.ToUint64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return uint8(value)
- }
- func (result SqlResult) ColumnValueUint16(columnName string) uint16 {
- value, err := reflectutils.ToUint64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return uint16(value)
- }
- func (result SqlResult) ColumnValueUint32(columnName string) uint32 {
- value, err := reflectutils.ToUint64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return uint32(value)
- }
- func (result SqlResult) ColumnValueUint64(columnName string) uint64 {
- value, err := reflectutils.ToUint64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return value
- }
- func (result SqlResult) ColumnValueFloat32(columnName string) float32 {
- value, err := reflectutils.ToFloat64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return float32(value)
- }
- func (result SqlResult) ColumnValueFloat64(columnName string) float64 {
- value, err := reflectutils.ToFloat64(result[columnName])
- if err != nil {
- fmt.Println(err)
- return 0
- }
- return value
- }
|