Ale*_*lex 3 sqlite sqlite-browser
阅读https://sqlite.org/datatype3.html后,其中指出
“SQLite 没有专门用于存储日期和/或时间的存储类。”
但能够运行这个
CREATE TABLE User (ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, BORN_ON DATE NULL)
Run Code Online (Sandbox Code Playgroud)
然后在“DB Browser for SQL”中看到它,如下所示:
我开始怀疑 SQLite 是否确实支持 Date 类型,它只是“伪造”使用其他类型的支持。即使是这样,为什么数据库浏览器将其视为日期?数据库中存储有任何元信息吗?
SQLite 不会Date用Numerics 来伪造。
DateSQLite 中没有数据类型。
在SQLite Version 3 的数据类型中,清楚地解释了:
SQLite 使用更通用的动态类型系统
除了数据类型之外,还有 5 种存储类别:NULL、INTEGER、REAL和TEXT。BLOB
还:
SQLite 版本 3 数据库中的任何列(除 INTEGER PRIMARY KEY 列外)都可用于存储任何存储类的值。
因此,当您Date在语句中用作列的数据类型时CREATE TABLE,您不限于仅在其中存储类似日期的值。实际上您可以在该列中存储任何内容。
“DB Browser for SQLite”等工具可能会提供各种数据类型供您在创建表时选择来定义列。
您所做的数据类型的选择不是限制性的,而是表明您想要在列中存储什么类型的数据。
事实上,您甚至可以在不声明列的数据类型的情况下创建表:
CREATE TABLE tablename(col1, col2)
Run Code Online (Sandbox Code Playgroud)
或使用虚构的数据类型:
CREATE TABLE tablename(col1 somedatatype, col2 otherdatatype)
Run Code Online (Sandbox Code Playgroud)
并插入任何数据类型的值:
INSERT INTO tablename(col1, col2) VALUES
(1, 'abc'),
('XYZ', '2021-01-06'),
(null, 3.5)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6586 次 |
| 最近记录: |