首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RJDBC日期混淆

RJDBC日期混淆
EN

Stack Overflow用户
提问于 2011-07-27 02:20:03
回答 2查看 560关注 0票数 3

运行从Rstudio到SQL Server的查询时,我在结果集中看到的日期相差了两天:

代码语言:javascript
复制
 drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver",
   "/etc/sqljdbc_3.0/enu/sqljdbc4.jar") 
   conn <- dbConnect(drv, "jdbc:sqlserver://blah", "blah", "shhh....")
 #then build a query and run it
 sqlText <- paste("Use Logs;
    SELECT * FROM Log_2011_07_26 with (NOLOCK)
    WHERE CreationDate >= '2011-07-26 13:44:44' AND
     CreationDate <= '2011-07-26 14:04:44' AND
    Server = 'ny-web02'", sep="")
 queryResults <- dbGetQuery(conn, sqlText)

 View(queryResults)

然而,结果都是以2011-07-24为日期。正如sp_WhoIsActive在服务器上看到的那样,正在运行正确的查询。除了datetime字段(换句话说,所有字段都与我在SQL Server Management studio中看到的正确结果一致)之外,结果就是它们看起来应该是什么样子。时间也是准确的--只是日期看起来是错的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-27 03:51:50

数据库列是一个datetime2列,显然链上的某些东西是不理解的。

如果我选择它作为CAST(CreationDate AS DATETIME),我会得到正确的日期。所以我猜解决方案是要么像这样选择它,要么改变表格(除非我听到更好的)。

票数 0
EN

Stack Overflow用户

发布于 2011-10-05 23:53:44

我们在使用Date类型时也遇到了同样的问题。

我们有4个环境设置。Dev、SIT、UAT和Prod。我们在生产中使用SQL Server驱动程序是因为JTDS驱动程序没有的自动故障转移功能,但JTDS在所有其他环境中都没有。我们开始看到驱动程序之间的其他细微差别,因此我们将所有其他环境(Dev、SIT和UAT)迁移到MS版本的驱动程序。

由于某些原因,SIT环境显示日期为两天,而所有环境都不显示日期。

我们有太多的更改会触发一个完整的回归测试周期,无法使用Datetime作为数据类型。在所有条件都相同的情况下,导致这种情况的环境中肯定存在细微的差异。有没有其他人遇到过这个问题并解决了它?

注意:我检查了我的日期位置设置,它们似乎在所有环境中都是相同的。

我们还在SIT数据库中指定了Dev,并且Date类型正确。然后,我们尝试将SIT指向Dev数据库,但得出的日期不正确。

据我们所知,所有环境都是彼此的镜像环境,SIT是唯一遇到这个问题的环境。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6834626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档