gpt4 book ai didi

sql - 如果日期相等,运算符之间不返回任何值

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

我有一张 table 叫 Products在那个表里面我有三个记录:

ID | Price | Date
1 20.0 2018-04-03 18:30:00
2 30.00 2018-04-03 18:30:00
3 30.00 2018-04-04 18:30:00

我想返回所有具有 Date 的记录间隔 2018-04-01 (开始日期)和 2018-04-03 (结束日期)。最终结果应该是(id): 1,2 .

我的查询具有以下语法:
SELECT * FROM Products WHERE datetime BETWEEN '2018-04-03' AND '2018-04-03'

当我在 DB Browser for Slite 中执行它时实用程序我收到此消息:

0 rows returned in 0ms from: SELECT * FROM Products WHERE datetime BETWEEN '2018-04-03' AND '2018-04-03'



但是,如果我在以下位置编辑查询:
SELECT * FROM Products WHERE datetime BETWEEN '2018-04-03' AND '2018-04-04'

我正确地获得了带有 id 的记录: 2, 3 .

这是一个错误还是我做错了什么?

最佳答案

没有时间的日期正好是午夜。如果您想要该日期的数据,我建议:

SELECT p.*
FROM Products p
WHERE datetime >= '2018-04-03' AND datetime < '2018-04-04';

这将在 2018-04-03 返回所有时间。

我强烈反对使用 between与日期/时间。由于时间成分,这只是令人困惑。 Aaron Bertrand 有一个关于这个主题的相当广泛的博客, What Do The Devil and Between Have In Common .尽管该博客是针对 SQL Server 的,但它也适用于其他数据库。

关于sql - 如果日期相等,运算符之间不返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49628747/

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