标签: integer

存储在 SQLite 整数列中的文本字符串?

我是一个数据库新手,正在查看似乎将文本存储在整数列中的 SQLite 数据库。这是 sqlite3 命令行中的示例会话:

sqlite> .schema mytable
CREATE TABLE mytable (
    id              integer primary key,   /* 0 */
    mycol           integer not null,      /* 1 */
);

sqlite> SELECT mycol FROM mytable;
here is some text
here is more text
[...]
it's text all the way down
Run Code Online (Sandbox Code Playgroud)

我糊涂了。是什么赋予了?

sqlite integer unicode

9
推荐指数
1
解决办法
1万
查看次数

如何在使用向导导入 txt 时将空白导入为空值而不是零

我正在使用导入向导加载文本文件,并且需要整数字段中的空白为空,但只插入零。

如何正确导入?

sql-server import sql-server-2012 integer

8
推荐指数
3
解决办法
1万
查看次数

当smallint适合数据时,有什么理由不使用它?

由于 PostgreSQL 没有 1 字节的tinyint,所以第二好的选择是smallint。然而,我从各种帖子中读到,它实际上可能会更慢,因为 CPU 已针对 32 位整数进行了优化,或者可能存在到 32 位整数的隐式转换。

除了这些原因之外,是否还有其他我不知道的不使用小于 32 位整数的原因?

postgresql integer

6
推荐指数
1
解决办法
485
查看次数

四舍五入问题?

尝试这个:

create table test (f float);
insert into test values (330.0);
commit;

select (8 + 330.0/60)::int; --14
select (8 + f/60)::int from test; --14
select (9 + 330.0/60)::int; --15
select (9 + f/60)::int from test; --14
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么最后一个查询返回 14 而不是 15 吗?

PostgreSQL 9.3.9 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
12.04.5 LTS (GNU/Linux 3.2.0-63-virtual x86_64)
Run Code Online (Sandbox Code Playgroud)

postgresql floating-point integer

5
推荐指数
1
解决办法
1695
查看次数

SQL Server“int”数据类型是否会在输入时可靠地截断(而不是舍入)十进制值?

我有一个用户使用的软件有时会将 UNIT 的 ID 作为整数(例如 1000)发回,有时会附加一个小十进制值(例如 1000.001)。该软件会自动生成具有“真实”数据类型的 MSSQL (2016 SP1) 表,并且“最重要”使此 UNIT 列成为主键的一部分。这会导致数据输入端和报告端出现问题。

我意识到这确实是软件的一个“错误”,但我试图在数据库方面提供帮助。我已经在沙盒区域证明我可以将“真实”数据类型更改为“int”,这不会导致现有数据丢失数据,并且每个输入场景都显示任何输入的十进制值将在“int”列(未四舍五入)。

我的问题是,“当输入到“int”数据类型时,SQL Server 是否总是可靠地截断十进制值(我们没有办法深入到打包的应用程序中并强制将其转为 ROUND)?是否有任何情况会出错,或引起问题?” 我在任何地方都找不到此文档。

sql-server integer

4
推荐指数
1
解决办法
483
查看次数