我有一排这样的:
现在我想检索 签到时间和 结帐时间 :
好的,我已经得到了正确的查询。现在通过 Go 代码运行查询:
package controllers
import (
"absensi/config"
"absensi/models"
"encoding/json"
"fmt"
"net/http"
"time"
)
func DoScanRow(w http.ResponseWriter, r *http.Request) {
var tmpcheckintime string
var tmpcheckouttime string
var param models.CheckinParam
var db = config.DBConnect()
json.NewDecoder(r.Body).Decode(¶m)
query1 := `SELECT checkin_time, checkout_time FROM oc_log WHERE userid=$1 AND userdate=$2;`
row := db.QueryRow(query1, param.UserId, time.Now().Format("2006-01-02"))
row.Scan(&tmpcheckintime, &tmpcheckouttime)
fmt.Println("--> id: " + param.UserId)
fmt.Println("--> date: " + time.Now().Format("2006-01-02"))
fmt.Println("--> checkin: ", tmpcheckouttime)
fmt.Println("--> checkout: ", tmpcheckouttime)
}
如果我通过 Postman 发送此有效负载:
{ "id": "1234", "location": "(100,100)", "distance": 4 }
我明白了:
--> id: 1234
--> date: 2019-10-28
--> checkin:
--> checkout:
入住和退房时间都是空的。然而显然只有结账时间是空的。这里有什么问题?
最佳答案
您发布的最后两行代码记录了 tmpcheckouttime
连续两次:
fmt.Println("--> checkin: ", tmpcheckouttime)
fmt.Println("--> checkout: ", tmpcheckouttime)
如果您修复第一个
Println
,你得到你所期望的吗?
关于postgresql - QueryRow.Scan() 不能正确读取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58585557/