gpt4 book ai didi

mysql - 按日期时间 MYSQL 格式过滤

转载 作者:IT老高 更新时间:2023-10-29 00:06:48 27 4
gpt4 key购买 nike

我有一个用于日志文件的 Mysql 表,该表上有一个名为“log_date”的字段,它以以下格式存储日期(%Y-%m-%d %H:%i .%s )。在数据库上,日期看起来像这个 2013-20-05 00:00.00。假设今天的日期是 2013-20-05 我有从 2013-01-01 到现在的日志文件。如果我运行这样的查询:

SELECT * FROM log_table
WHERE STR_TO_DATE(log_date, '%Y-%m-%d %H:%i.%s') < '2013-05-05 00:00.00'

这将返回数据库中的每一行,包括大于 2013-05-05 00:00.00 的行

如果我使用如下查询将 <(小于)反转为 >(大于):

SELECT * FROM log_table
WHERE STR_TO_DATE(log_date, '%Y-%m-%d %H:%i.%s') > '2013-05-05 00:00.00'

然后它返回零行。我认为时间戳是导致我之前使用日期格式但不是 DateTime 格式的问题的原因。为什么会这样?

最佳答案

log_date 应该是 DateTime 数据类型。使用 MySQL DATE 函数要简单得多。一些例子

SELECT * FROM log_table
WHERE DATE(log_date) < '2013-05-05'

SELECT * FROM log_table
WHERE DATE(log_date) > '2013-05-05'

SELECT * FROM log_table
WHERE DATE(log_date) BETWEEN '2013-04-05' AND '2013-05-05'

SELECT * FROM log_table
WHERE DATE(log_date) BETWEEN DATE(CURRENT_DATE() - INTERVAL 2 WEEK) AND
DATE(CURRENT_DATE() + INTERVAL 4 DAY)

关于mysql - 按日期时间 MYSQL 格式过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16657202/

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