Browse Source

fix: time repr wrapper (#2255)

Kevin Wan 2 năm trước cách đây
mục cha
commit
1568c3be0e
2 tập tin đã thay đổi với 21 bổ sung0 xóa
  1. 9 0
      core/stores/sqlx/utils.go
  2. 12 0
      core/stores/sqlx/utils_test.go

+ 9 - 0
core/stores/sqlx/utils.go

@@ -6,6 +6,7 @@ import (
 	"fmt"
 	"strconv"
 	"strings"
+	"time"
 
 	"github.com/zeromicro/go-zero/core/logx"
 	"github.com/zeromicro/go-zero/core/mapping"
@@ -152,6 +153,14 @@ func writeValue(buf *strings.Builder, arg interface{}) {
 		buf.WriteByte('\'')
 		buf.WriteString(escape(v))
 		buf.WriteByte('\'')
+	case time.Time:
+		buf.WriteByte('\'')
+		buf.WriteString(v.String())
+		buf.WriteByte('\'')
+	case *time.Time:
+		buf.WriteByte('\'')
+		buf.WriteString(v.String())
+		buf.WriteByte('\'')
 	default:
 		buf.WriteString(mapping.Repr(v))
 	}

+ 12 - 0
core/stores/sqlx/utils_test.go

@@ -3,6 +3,7 @@ package sqlx
 import (
 	"strings"
 	"testing"
+	"time"
 
 	"github.com/stretchr/testify/assert"
 )
@@ -138,3 +139,14 @@ func TestFormat(t *testing.T) {
 		})
 	}
 }
+
+func TestWriteValue(t *testing.T) {
+	var buf strings.Builder
+	tm := time.Now()
+	writeValue(&buf, &tm)
+	assert.Equal(t, "'"+tm.String()+"'", buf.String())
+
+	buf.Reset()
+	writeValue(&buf, tm)
+	assert.Equal(t, "'"+tm.String()+"'", buf.String())
+}