gpt4 book ai didi

sqlite - 为什么SqliteStudio在其Create Table语句中显示DATETIME列

转载 作者:行者123 更新时间:2023-12-03 18:28:16 25 4
gpt4 key购买 nike

我已经读过,日期时间存储在sqlite中的Text,Real或Integer中,但是sqlitestudio将datetime列显示为Datetime,就像在下面的DDL中显示DATETIME列一样:

CREATE TABLE tblWeights (
uid STRING,
weight DOUBLE,
dt DATETIME,
printed INTEGER,
dispdt DATETIME,
transid INTEGER
);


这是怎么回事?

最佳答案

答案将是因为那是创建表,更改表和添加列时所使用的。

实际上,您实际上可以拥有几乎任何类型的列类型(十进制),甚至是mycolumn rumplestiltskin NOT NULL之类的列类型也将被记录/存储(类型相似性为NUMERIC)。正如SQLite所做的那样,使用算法,然后使用一些简单的规则来应用INTEGER,TEXT,NUMERIC,REAL或BLOB的类型相似性:


3.1。列亲和力的确定列的亲和力由列的声明类型确定,具体取决于
如下所示的规则:

如果声明的类型包含字符串“ INT”,则将其分配
整数亲和力。

如果列的声明类型包含任何字符串“ CHAR”,
“ CLOB”或“ TEXT”,则该列具有TEXT关联性。请注意
类型VARCHAR包含字符串“ CHAR”,因此被分配为TEXT
亲和力。

如果列的声明类型包含字符串“ BLOB”或否
指定类型,则该列具有关联BLOB。

如果列的声明类型包含任何字符串“ REAL”,
“ FLOA”或“ DOUB”,则该列具有REAL亲和力。

否则,关联性为NUMERIC。

请注意,确定列亲和力的规则顺序为
重要。声明类型为“ CHARINT”的列将同时匹配
规则1和2,但第一个规则优先,因此该列
亲和力将为INTEGER。
Datatypes In SQLite Version 3


但是,除了列是rowid或rowid本身的别名(必须具有唯一的INTEGER)之外,您还可以在任何类型的列中存储任何类型的值。根据前面给出的链接,再次存储数据的方式(存储类)之间存在细微的差异。

关于sqlite - 为什么SqliteStudio在其Create Table语句中显示DATETIME列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50231510/

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