gpt4 book ai didi

mysql - 使用 SQL,尝试使用日期范围创建查询,但某些值是 0000-00-00,需要替换它们

转载 作者:行者123 更新时间:2023-11-29 11:49:16 25 4
gpt4 key购买 nike

我正在尝试创建一个查询,其中显示的 UserRecordID 是其中的查询(1) EventCreatedDate 大于 UpgradeCreatedDate和(2) EventCreatedDate 小于 UpgradeExpirationDate

所以类似:

WHERE Event.CreatedDate > UpgradeCreatedDate
AND Event.CreatedDate < UpgradeExpirationDate

但是,问题是某些 UserRecordID 没有过期日期,并由 "0000-00-00" 表示,当我想要时,SQL 似乎将其视为一个非常小的日期查询将其视为一个非常大的日期(基本上是无穷大,因为升级永不过期)。因此,每当 UpgradeExpirationDate0000-00-00 时,当我想要它时,我当前的查询总是会看到 Event.CreatedDate 大于 UpgradeExpirationDate小于。有没有办法解决这个问题?我尝试使用 CASE 语句,但仍然无法让它按照我想要的方式工作。

最佳答案

有一件事。您可以在数据库中重述所有 0000-00-00 到 9999-12-31 ..然后您所做的一切都会正常工作。我通常使用 9999-12-31 来代表“永远”,而不是 0000-00-00。然后您的 SQL 在所有情况下都将按预期工作。

如果你不这样做..你将不得不使用 where 子句

WHERE 

Event.CreatedDate > UpgradeCreatedDate
AND (Event.CreatedDate < UpgradeExpirationDate OR
UpgradeExpirationDate = '0000-00-00')

关于mysql - 使用 SQL,尝试使用日期范围创建查询,但某些值是 0000-00-00,需要替换它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34427452/

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