gpt4 book ai didi

sql - sqlite3 中的日期处理令人困惑。

转载 作者:搜寻专家 更新时间:2023-10-30 19:43:40 26 4
gpt4 key购买 nike

我来自非数据库背景。我创建了一个字段数据类型为 TEXT 的表。

dataF TEXT

插入:

插入了三个值的记录:

'842-2-4'
'842-2-5'
'842-2-6'

选择:

现在尝试获取基于日期的记录。

... where dateF between '842-2-4' and '842-2-10'

它失败了。

然而,

... where dateF between '842-2-4' and '842-2-8'

检索所有 3 条记录。

我做错了什么?为什么第一个语句失败?

请建议。

最佳答案

因为您比较的是字符串而不是日期。计算机不知道这些是日期。您必须存储为日期并进行日期比较,或者实现您自己的逻辑来分析字符串。

简而言之,它会将十分之一视为低于您的值(value)观,而不是将十分之一视为高于您的值(value)观。这是字符串比较,不是日期。

虽然 sqlite 不支持日期类型,但它确实有处理它们的函数。看这里:

http://www.sqlite.org/lang_datefunc.html

关于sql - sqlite3 中的日期处理令人困惑。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13606654/

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