无法将日期时间纪元转换为仅日期纪元格式



我正在尝试从一个DB(db1(获取日期格式的date("jobDate"(,并插入到另一个DB(db2(,其中Date("solveDate"(是纪元格式。现在,我将日期从 db1 传递到 db2 的选择查询。为了匹配他们的数据类型,我正在转换时间。时间到纪元格式并传递到 db2。我不想要时间戳,只需要 YYYY-MM-DD 格式。但这里的问题是,db2 的纪元日期包含日期和时间。结果,当我传递 jobDate 来选择查询时,它无法匹配 solveDate 中的任何条目。

我的代码如下:

dsn := "server=********.md3q.***.com;user id=*******;password=******"
db, err := sql.Open("mssql", dsn) 
if err != nil {
log.Fatal(err)
}
err = db.Ping()
if err != nil {
log.Fatal(err)
}
rows,err := db2.Query("select top 1 jobDate from mdesk.dbo.tbl_jobstatus where LastStatus = 'Success' ORDER BY jobDate DESC")
if err != nil {
log.Println(err)
}
defer db.Close()
for rows.Next() {
err := rows.Scan(&jobDate)
if err != nil {
log.Fatal(err)
}
log.Println("jobDate",jobDate)  //2013-01-11 00:00:00 +0000 UTC (I'm getting this)
}
input:= jobDate.Unix()
jobDate:= input3
log.Println("EpochDate",jobDate) // 1357948800 this is the epoch format of the above date
dsn1 := "server=*******.ecc4q.******.com; user id=*******; password=*********"
db1, err := sql.Open("mssql", dsn1) 
if err != nil {
log.Fatal(err)
}
err = db1.Ping()
if err != nil {
log.Fatal(err)
}
rows1, err := db1.Query("select Incident_Number, resolvedDate, Corporate_ID from ITSM.dbo.HPD_Help_Desk_Classic where resolvedDate in (?)",jobDate) //main problem is here. 1357948800 is not matching with any entry in this query because all of the entries in resolvedDate are in datetime epoch format whereas I am  trying to search in date epoch format. 
if err != nil {
log.Println(err)
}
defer db.Close()

谁能建议我做错了什么?

如果"solveDate"列的日期类型是DATE,请尝试转换时间。在 SQL 中达到 DATE 的时间(见下文(。 如果"solveDate"是整数或字符串,则使用时间。Format(( 方法来预处理它。

并且总是担心时区。如果您的数据库不是 UTC,则可能会遇到意外行为。

rows1, err := db1.Query(
"select Incident_Number, resolvedDate, Corporate_ID from ITSM.dbo.HPD_Help_Desk_Classic " + 
"where resolvedDate in DATE(?)", // <--- See cast in SQL
jobDate) 

最新更新