/
function_time.go
46 lines (38 loc) · 1.16 KB
/
function_time.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package rapier
import (
"fmt"
"strings"
"gorm.io/gorm/clause"
)
// UnixTimestamp use UNIX_TIMESTAMP([date])
func UnixTimestamp(date ...string) Int64 {
if len(date) > 0 {
return Int64{expr{e: clause.Expr{SQL: "UNIX_TIMESTAMP(?)", Vars: []any{date[0]}}}}
} else {
return Int64{expr{e: clause.Expr{SQL: "UNIX_TIMESTAMP()"}}}
}
}
// FromUnixTime use FROM_UNIXTIME(unix_timestamp[,format])
func FromUnixTime(date int64, format ...string) String {
if len(format) > 0 && strings.TrimSpace(format[0]) != "" {
return String{expr{e: clause.Expr{SQL: "FROM_UNIXTIME(?, ?)", Vars: []any{date, format[0]}}}}
} else {
return String{expr{e: clause.Expr{SQL: "FROM_UNIXTIME(?)", Vars: []any{date}}}}
}
}
// FromDays equal to FROM_DAYS(value)
func FromDays(value int) Time {
return Time{expr{e: clause.Expr{SQL: fmt.Sprintf("FROM_DAYS(%d)", value)}}}
}
// CurDate return result of CURDATE()
func CurDate() Time {
return Time{expr{e: clause.Expr{SQL: "CURDATE()"}}}
}
// CurTime return result of CURTIME()
func CurTime() Time {
return Time{expr{e: clause.Expr{SQL: "CURTIME()"}}}
}
// Now return result of NOW()
func Now() Time {
return Time{expr{e: clause.Expr{SQL: "NOW()"}}}
}