gpt4 book ai didi

R RpostgreSQL bigint 数据类型

转载 作者:行者123 更新时间:2023-12-04 04:39:18 24 4
gpt4 key购买 nike

我需要处理,我想是大整数,主键值 1380742793415240 .
在 R 中,我可以轻松调整选项(scipen=100),但我需要将该数据存储在 postgres db 中。
我已经尝试使用 dbWriteTable 默认( double )结果:违反约束(可能是 ...4e+015 表示中的重复键),并且在将目标列更改为 bigint 后,结果:invalid input syntax for integer: "1.38074279341524e+015" .

示例:尝试在 dt 之后从 db 保存和加载

sample_dt <- data.table(a = c(20130101,20130102,20130102), 
b = c(1380742793415240,1380742793415241,1380742793415242))

在postgres中保存和加载此类数据的有效方法是什么?

最佳答案

该主题在 RpostgreSQL 邮件列表上得到了很好的讨论和解决,如果有人遇到同样的问题,请链接它:https://groups.google.com/forum/#!topic/rpostgresql-dev/NDc7NfUP6M8
内容下方:

library(RPostgreSQL)
# Loading required package: DBI
c=dbConnect("PostgreSQL")
a <- 1380742793415240
b <- 1380742793415241
dc <-data.frame(a=as.character(a), b=as.character(b))
dbWriteTable(c,"testclosenumberch", dc)
# [1] TRUE
dbGetQuery(c, "select * from testclosenumberch")
# row.names a b
# 1 1 1380742793415240 1380742793415241
dbGetQuery(c, "select a::bigint - b::bigint from testclosenumberch")
# ?column?
# 1 -1

关于R RpostgreSQL bigint 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19169164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com