Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 无法将日期时间历元转换为仅日期历元格式_Sql_Go - Fatal编程技术网

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

Sql 无法将日期时间历元转换为仅日期历元格式,sql,go,Sql,Go,我试图从一个数据库(db1)中获取日期格式的日期(“jobDate”),并将其插入另一个数据库(db2),其中日期(“resolvedDate”)为历元格式。现在我将日期从db1传递到db2的select查询。为了匹配它们的数据类型,我将time.time转换为epoch格式并传递给db2。我不想要时间戳,只是YYYY-MM-DD格式。但这里的问题是,db2中的纪元日期同时包含日期和时间。因此,当我将jobDate传递给select查询时,它无法匹配resolvedDate中的任何条目 我的代码

我试图从一个数据库(db1)中获取日期格式的日期(“jobDate”),并将其插入另一个数据库(db2),其中日期(“resolvedDate”)为历元格式。现在我将日期从db1传递到db2的select查询。为了匹配它们的数据类型,我将time.time转换为epoch格式并传递给db2。我不想要时间戳,只是YYYY-MM-DD格式。但这里的问题是,db2中的纪元日期同时包含日期和时间。因此,当我将jobDate传递给select查询时,它无法匹配resolvedDate中的任何条目

我的代码如下:

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()
有人能指出我做错了什么吗?

如果“resolvedDate”列的日期类型是日期,请尝试将time.time转换为SQL中的日期(见下文)。 如果“resolvedDate”是int或string,则使用time.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) 
rows1,err:=db1.Query(
“从ITSM.dbo.HPD\U帮助\U桌面\U Classic中选择事件编号、解析日期、公司ID”+

“where resolvedDate in DATE(?),//请给出一个小的、自包含的示例,并描述您希望示例做什么以及实际结果是什么。什么是jobDate?什么是input3,等等。您是否尝试过
time.Unix(jobDate,0)
?请看一看