gpt4 book ai didi

mysql - 检查给定日期小于 current_date

转载 作者:太空宇宙 更新时间:2023-11-03 10:26:01 26 4
gpt4 key购买 nike

我有到期日 我想检查到期日是否早于当前日期。如果到期日是 ex:27-03-2011。如果到期时间是 ex:27-04-2011,我想做一些操作,不需要做任何事情。

我只想查看和报告一个月的详细信息,过期一个月后我不想检查怎么查询?

表1

字段类型

到期日

例如:2012-01-20

最佳答案

请使用 MySQL 日期和时间格式,格式为 YYYY-MM-DD(ISO 日期格式)。所有 MySQL 日期和时间函数 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html使用这种格式工作。

MySQL 也有日期和时间算法。您可以编写诸如“NOW() - INTERVAL 5 day”之类的表达式,此处也有说明 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add

root@localhost [(none)]> select now(), now() - interval 5 day\G
*************************** 1. row ***************************
now(): 2011-03-28 13:49:24
now() - interval 5 day: 2011-03-23 13:49:24
1 row in set (0.00 sec)

要列出所有超过 5 天的项目,请使用

SELECT id FROM sometable WHERE created > NOW() - INTERVAL 5 DAY

或类似的查询。有几点需要注意:

  • created 上应该有一个索引以加快速度
  • 创建的列名不是表达式的一部分,以使其能够与索引一起使用。我们专门编写“created > NOW() - INTERVAL 5 DAY”而不是“created + INTERVAL 5 DAY > NOW()” - 此表达式使用在表达式中创建的列名,因此不可能使用索引。
  • 如果将其与删除查询一起使用,基本上就是从时间箭头的左侧删除旧数据,在时间箭头的右侧插入新数据。也许您想使用 MySQL PARTITIONS,然后使用 PARTITION BY RANGE 您的表。这将允许您通过使用 ALTER TABLE DROP PARTITION 删除旧数据,丢弃 5 天前的分区,为明天创建一个新分区。在许多情况下,这比 DELETE 快得多。

关于mysql - 检查给定日期小于 current_date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5457097/

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