我有一个SQLite数据库,它使用一个名为DateTime的字段。在代码中,我使用DateTime.Now
,所以这不仅仅是一个基本日期,它总是记录输入的当前时间。
当我尝试运行SQL语句时,它看起来像:
SELECT
*
FROM Tournament
WHERE DateTime >= '8/1/2023 12:00:00 AM' AND DateTime <= '8/31/2023 11:59:59 PM'
就是这张table
CREATE TABLE IF NOT EXISTS Tournament (
Id TEXT PRIMARY KEY NOT NULL,
Name TEXT,
SiteId Text,
DateTime Text NOT NULL,
BuyIn REAL NOT NULL,
Staking REAL NOT NULL,
IsRebuy BOOLEAN NOT NULL,
RebuyCount INTEGER,
IsDeal BOOLEAN NOT NULL,
IsAddOn BOOLEAN NOT NULL,
FOREIGN KEY (SiteId) REFERENCES Site(Id)
);
它得到0个结果,但是当我Select * From Tournament
时,我得到1个记录,其中字段DateTime
为2023-08-27 09:19:32.7331808
有人能帮我解答这个问题吗?
1条答案
按热度按时间e5nszbig1#
使用ISO 601格式,不仅仅是SQLite,而是任何数据库和语言。
几乎所有的语言和数据库都有明确的日期类型,并自动识别ISO 8601格式 ,SQLite 除外。在SQLite中,以文本形式存储的日期应遵循ISO 8601格式。
From the Data Types docs
SQLite没有专门用于存储日期和/或时间的存储类。相反,SQLite的内置日期和时间函数能够将日期和时间存储为TEXT,真实的或INTEGER值:
应用程序可以选择以任何这些格式存储日期和时间,并使用built-in date and time functions在格式之间自由转换。