gpt4 book ai didi

mysql - 为什么这个用于转换数据格式的 DATE_FORMAT 在这个 MySql 查询中不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:22 26 4
gpt4 key购买 nike

我不是很喜欢数据库,这个查询有以下问题:

SELECT 
count(*) AS exist

FROM Market_Commodity_Price_Series AS MCPS
INNER JOIN MarketDetails_CommodityDetails AS MD_CD
ON MCPS.market_commodity_details_id = MD_CD.id

INNER JOIN MarketDetails AS MD
ON MD_CD.market_details_id = MD.id

INNER JOIN CommodityDetails AS CD
ON MD_CD.commodity_details_id = CD.id

INNER JOIN CommodityName AS CN
ON CD.id = CN.commodity_details_id

WHERE
MD.market_name = "Butare"

AND CN.commodity_name = "Soya"

AND CN.language_id = 3
AND
MCPS.price_date >= DATE_FORMAT(STR_TO_DATE("03/15/2018", '%d/%m/%Y'), '%Y-%m-%d')

AND
MCPS.price_date <= DATE_FORMAT(STR_TO_DATE("03/15/2018", '%d/%m/%Y'), '%Y-%m-%d')

问题是它总是返回 0 作为输出。

我了解到问题与这些WHERE 条件有关:

AND
MCPS.price_date >= DATE_FORMAT(STR_TO_DATE("03/15/2018", '%d/%m/%Y'), '%Y-%m-%d')

AND
MCPS.price_date <= DATE_FORMAT(STR_TO_DATE("03/15/2018", '%d/%m/%Y'), '%Y-%m-%d')

问题是我的 Market_Commodity_Price_Series 表的 price_date 字段包含值 15/03/2018 而不是 03/15/2018.

此查询正在使用:

DATE_FORMAT(STR_TO_DATE("03/15/2018", '%d/%m/%Y'), '%Y-%m-%d')

将日期格式转换为另一种格式,但似乎不起作用。

为什么?怎么了?我错过了什么?我该如何解决这个问题?

最佳答案

STR_TO_DATE 的第二个参数是一种应与您传入的日期字符串相匹配的格式。

'%d/%m/%Y' 表示月份应该排在第二位,但由于在您的情况下没有第 15 个月,因此月份必须排在第一位,然后是日期。

DATE_FORMAT(STR_TO_DATE("03/15/2018", '%m/%d/%Y'), '%Y-%m-%d') 应该修复它。

关于mysql - 为什么这个用于转换数据格式的 DATE_FORMAT 在这个 MySql 查询中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50531708/

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