[New] Constructor for time types, that accepts time.Time. (TimeT, TimezT, DateT, ...)
This commit is contained in:
parent
647ef21aaf
commit
6ee2f45548
11 changed files with 182 additions and 22 deletions
|
|
@ -151,6 +151,10 @@ func Time(hour, minute, second int, milliseconds ...int) TimeExpression {
|
|||
return TimeExp(literal(timeStr))
|
||||
}
|
||||
|
||||
func TimeT(t time.Time) TimeExpression {
|
||||
return TimeExp(literal(t))
|
||||
}
|
||||
|
||||
// Timez creates new time with time zone literal expression
|
||||
func Timez(hour, minute, second, milliseconds, timezone int) TimezExpression {
|
||||
timeStr := fmt.Sprintf("%02d:%02d:%02d.%03d %+03d", hour, minute, second, milliseconds, timezone)
|
||||
|
|
@ -158,6 +162,10 @@ func Timez(hour, minute, second, milliseconds, timezone int) TimezExpression {
|
|||
return TimezExp(literal(timeStr))
|
||||
}
|
||||
|
||||
func TimezT(t time.Time) TimezExpression {
|
||||
return TimezExp(literal(t))
|
||||
}
|
||||
|
||||
// Timestamp creates new timestamp literal expression
|
||||
func Timestamp(year int, month time.Month, day, hour, minute, second int, milliseconds ...int) TimestampExpression {
|
||||
timeStr := fmt.Sprintf("%04d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, minute, second)
|
||||
|
|
@ -167,6 +175,10 @@ func Timestamp(year int, month time.Month, day, hour, minute, second int, millis
|
|||
return TimestampExp(literal(timeStr))
|
||||
}
|
||||
|
||||
func TimestampT(t time.Time) TimestampExpression {
|
||||
return TimestampExp(literal(t))
|
||||
}
|
||||
|
||||
// Timestampz creates new timestamp with time zone literal expression
|
||||
func Timestampz(year, month, day, hour, minute, second, milliseconds, timezone int) TimestampzExpression {
|
||||
timeStr := fmt.Sprintf("%04d-%02d-%02d %02d:%02d:%02d.%03d %+04d",
|
||||
|
|
@ -175,6 +187,10 @@ func Timestampz(year, month, day, hour, minute, second, milliseconds, timezone i
|
|||
return TimestampzExp(literal(timeStr))
|
||||
}
|
||||
|
||||
func TimestampzT(t time.Time) TimestampzExpression {
|
||||
return TimestampzExp(literal(t))
|
||||
}
|
||||
|
||||
//Date creates new date expression
|
||||
func Date(year int, month time.Month, day int) DateExpression {
|
||||
timeStr := fmt.Sprintf("%04d-%02d-%02d", year, month, day)
|
||||
|
|
@ -182,6 +198,10 @@ func Date(year int, month time.Month, day int) DateExpression {
|
|||
return DateExp(literal(timeStr))
|
||||
}
|
||||
|
||||
func DateT(t time.Time) DateExpression {
|
||||
return DateExp(literal(t))
|
||||
}
|
||||
|
||||
//--------------------------------------------------//
|
||||
type nullLiteral struct {
|
||||
expressionInterfaceImpl
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
package jet
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestRawExpression(t *testing.T) {
|
||||
assertClauseSerialize(t, RAW("current_database()"), "current_database()")
|
||||
|
||||
var timeT = time.Date(2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
|
||||
|
||||
assertClauseSerialize(t, DateT(timeT), "$1", timeT)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ func AssertExecErr(t *testing.T, stmt jet.Statement, db execution.DB, errorStr s
|
|||
assert.Error(t, err, errorStr)
|
||||
}
|
||||
|
||||
func AssertJSON(t *testing.T, expectedJSON string, data interface{}) {
|
||||
func AssertJSON(t *testing.T, data interface{}, expectedJSON string) {
|
||||
jsonData, err := json.MarshalIndent(data, "", "\t")
|
||||
assert.NilError(t, err)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue