首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RMySQL编写日期

使用RMySQL编写日期
EN

Stack Overflow用户
提问于 2013-02-26 09:41:18
回答 2查看 3.9K关注 0票数 1

我在R中有一个时间,我想把它写到DATETIME列中的MySQL表中。我该怎么做呢?如果我将其格式化为字符串,SQL将无法识别它;如果我使用as.POSIXlt,SQL仍然无法识别它。

我只使用标准的dbConnectdbWriteTable语句,它们可以很好地处理非日期。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-26 11:21:53

根据this的说法

MySQL可以识别以下格式的日期时间和时间戳值:'YYYY-MM-DD HH:MM:SS‘或'YY-MM-DD HH:MM:SS’格式的字符串。

因此,一种解决方案是以正确的格式格式化日期:

代码语言:javascript
复制
now <- as.POSIXlt(Sys.time())
now.str <- format(now,'%Y-%m-%d %H:%M:%S')
now.str 
[1] "2013-02-26 04:12:24"

或采用以下格式

代码语言:javascript
复制
format(now,'%Y%m%d%H%M%S')
[1] "20130226041224"

然后使用dbSendQuery更新表。下面是一个为任何表和任何日期创建动态查询的示例。使其适应您的需求。

代码语言:javascript
复制
table.Name <- "MY_TABLE"
query <-  paste(paste('UPDATE ', table.Name,sep=''),
                paste('SET datetime_column =' ,"'",now.str,"'",sep=''),
                'WHERE id=1',sep='\n')

cat(query)
UPDATE MY_TABLE
SET datetime_column ='2013-02-26 04:12:24'
WHERE id=1

dbSendQuery(con, query)

我还认为,一旦您将日期格式设置为正确的格式,这应该适用于dbWritetable。但是我没有安装MySQL来测试它。试一试,让我知道这是否有帮助。

票数 6
EN

Stack Overflow用户

发布于 2015-08-16 12:10:56

我一直在使用agstudy的解决方案,然后使用dbSendQuery在dbWriteTable之后调用这个SQL。看起来运行得很好。

代码语言:javascript
复制
ALTER TABLE TableName MODIFY DateFieldName datetime;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15079891

复制
相关文章

相似问题

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