STR_TO_DATE 在我的 SQL 查询中为空
STR_TO_DATE in MY SQL Query is Null
我已经阅读了多篇文章,发现我的语法没有任何问题,有人可以指出错误吗?
我正在 WordPress 数据库的 PHP MyAdmin 中测试一些查询。我查询的 table 有一个 meta_key 的 "Listing-End-Date" 和 meta_values 的“2018/06/30”。
我的查询如下所示:
SELECT * FROM `table`
WHERE `meta_key` LIKE 'Listing-End-Date'
AND STR_TO_DATE('meta_value', '%Y/%m/%d') > CURDATE()
它 returns 0 个结果。为了测试我的 STR_TO_DATE 格式,我做了一个新查询:
SELECT `meta_key` , STR_TO_DATE( 'meta_value', '%Y/%m/%d' )
FROM 'table'
WHERE `meta_key` LIKE 'Listing-End-Date'
我返回了预期的 1 个结果,但日期为 NULL。是因为我使用的是 PHP 我的管理员还是我打错了什么?
Meta_value应该打勾,不要在string_to_date
里面加引号
您试图将字符串值 'meta_value'
转换为日期,但显然失败了。您可能想从 table meta_key
中引用列 meta_value
而不是:
SELECT * FROM `table`
WHERE meta_key LIKE 'Listing-End-Date'
AND STR_TO_DATE(meta_value, '%Y/%m/%d') > CURDATE()
我删除了反引号,因为这里不需要反引号(除 table
外)。但是,即使您可以使用反引号,您也不应该使用保留关键字命名您的 table。
此外,需要注意的一件事是 meta_key LIKE 'Listening-End-Date'
等价于相等比较 meta_key = 'Listening-End-Date'
因为您不进行部分搜索(您没有在任何地方使用 %
) .
尝试使用DATE_FORMAT()
我已经阅读了多篇文章,发现我的语法没有任何问题,有人可以指出错误吗?
我正在 WordPress 数据库的 PHP MyAdmin 中测试一些查询。我查询的 table 有一个 meta_key 的 "Listing-End-Date" 和 meta_values 的“2018/06/30”。
我的查询如下所示:
SELECT * FROM `table`
WHERE `meta_key` LIKE 'Listing-End-Date'
AND STR_TO_DATE('meta_value', '%Y/%m/%d') > CURDATE()
它 returns 0 个结果。为了测试我的 STR_TO_DATE 格式,我做了一个新查询:
SELECT `meta_key` , STR_TO_DATE( 'meta_value', '%Y/%m/%d' )
FROM 'table'
WHERE `meta_key` LIKE 'Listing-End-Date'
我返回了预期的 1 个结果,但日期为 NULL。是因为我使用的是 PHP 我的管理员还是我打错了什么?
Meta_value应该打勾,不要在string_to_date
里面加引号您试图将字符串值 'meta_value'
转换为日期,但显然失败了。您可能想从 table meta_key
中引用列 meta_value
而不是:
SELECT * FROM `table`
WHERE meta_key LIKE 'Listing-End-Date'
AND STR_TO_DATE(meta_value, '%Y/%m/%d') > CURDATE()
我删除了反引号,因为这里不需要反引号(除 table
外)。但是,即使您可以使用反引号,您也不应该使用保留关键字命名您的 table。
此外,需要注意的一件事是 meta_key LIKE 'Listening-End-Date'
等价于相等比较 meta_key = 'Listening-End-Date'
因为您不进行部分搜索(您没有在任何地方使用 %
) .
尝试使用DATE_FORMAT()