按存储为 Varchar 的日期时间过滤 MySQL 查询

时间:2021-01-26 13:01:36

标签: php mysql database datetime varchar

我正在尝试通过存储日期时间值但使用 varchar 数据类型的字段过滤 MySQL 查询。

示例数据:
16:56:41 01/14/21 GMT

示例代码:

".000000"

查询当前根本没有返回任何内容。但是下面的代码有效:

SELECT * FROM table_name WHERE STR_TO_DATE(datetime,'%H:%i:%S %m/%d/%y') BETWEEN '00:00:00 01/14/21' AND '23:59:59 01/14/21'"

如有任何想法,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

您对 Text="{x:Static local:[myConstantNamesClass].[name of constant string in your constant class]}" 的使用是正确的,但您的日期文字已关闭。修复它们,您的查询应该可以工作:

STR_TO_DATE

以上假设您希望记录正确地发生在 2021 年 1 月 14 日。请注意,我们甚至不需要包含 H:M:S 组件,只需使用日期文字即可。

最好使您的 SELECT * FROM table_name WHERE STR_TO_DATE(datetime,'%H:%i:%S %m/%d/%y') >= '2021-01-14' AND STR_TO_DATE(datetime,'%H:%i:%S %m/%d/%y') < '2021-01-15'; 列成为适当的日期时间类型列,而不是文本。这将避免使用 datetime