str\u to\u date为空

wtlkbnrh  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(417)

我读了多篇文章,发现我的语法没有问题,有人能指出错误吗?
我正在一个wordpress数据库上用php myadmin测试一些查询。我正在查询的表的meta\u键为“listing end date”,meta\u值为“2018/06/30”。
我的查询如下所示:

SELECT * FROM `table`
WHERE `meta_key` LIKE 'Listing-End-Date'
AND STR_TO_DATE('meta_value', '%Y/%m/%d') > CURDATE()

它返回0个结果。为了测试str\u to\u date格式,我做了一个新的查询:

SELECT `meta_key` , STR_TO_DATE( 'meta_value', '%Y/%m/%d' )
FROM 'table'
WHERE `meta_key` LIKE 'Listing-End-Date'

我得到了预期的返回结果1,但日期为空。是因为我使用php管理还是我输入了错误的内容?

rxztt3cl

rxztt3cl1#

您试图转换字符串值 'meta_value' 到目前为止,这显然是失败的。你可能想引用一个专栏 meta_value 从表 meta_key 取而代之的是:

SELECT * FROM `table`
WHERE meta_key LIKE 'Listing-End-Date'
AND STR_TO_DATE(meta_value, '%Y/%m/%d') > CURDATE()

我删除了backticks,因为这里不需要它们(除了 table ). 不过,即使可以使用backticks,也不应该用保留关键字命名表。
另外,需要注意的是 meta_key LIKE 'Listening-End-Date' 等同于平等比较 meta_key = 'Listening-End-Date' 因为你没有做部分搜索(你没有使用 % 任何地方)。

qnzebej0

qnzebej02#

元值应该勾选,而不是在字符串\u to \u date中引用

d7v8vwbk

d7v8vwbk3#

尝试使用日期格式()
检查此页

相关问题