gpt4 book ai didi

MySQL 日期之间无法正常工作

转载 作者:行者123 更新时间:2023-11-29 19:30:04 26 4
gpt4 key购买 nike

我正在尝试获取日期介于两个其他日期之间的所有行。表中的日期字段只是格式为“dd/MM/yyyy”的文本

我尝试过这个命令:

WHERE DATE(FROM_UNIXTIME(Datum)) BETWEEN DATE(FROM_UNIXTIME(@ParStart)) AND DATE(FROM_UNIXTIME(@ParStop))

@ParStart =“06/12/2016”@ParStop =“05/01/2017”

它不只返回这些日期之间的数据,而是返回所有内容。

我尝试在表上使用 STR_TO_DATE 的选择,但当我尝试这样做时它返回 null:

str_to_date(`Datum`, '%d-%m-%Y')

我还尝试将列类型更改为日期或日期时间,但这会删除其中的日期并将其替换为 0

谁能帮我解决这个问题吗?

谢谢

最佳答案

FROM_UNIXTIME 适用于数字(自 01.01.1970 00:00 以来的秒数),不适用于字符串。当您在字符串上使用它时,它会为每个字符串返回相同的值 (01.01.1970 00:00),因此您的查询 WHERE 子句始终为 true。

您应该使用STR_TO_DATE(str,format)进行此类比较。

WHERE STR_TO_DATE(Datum, "%d/%m/%Y") BETWEEN STR_TO_DATE(@ParStart, "%d/%m/%Y") AND STR_TO_DATE(@ParStop, "%d/%m/%Y")

而且您确实应该考虑不要将日期存储在字符串中。

关于MySQL 日期之间无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41846513/

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