where子句中的mysql date\ U format()或str\ U to\ U date()

where子句中的mysql date\ U format()或str\ U to\ U date(),mysql,sql,Mysql,Sql,我已将视图命名为“销售视图” select * from SalesView; 我想从SalesView获取订单日期为2019年10月9日的记录。 订单日期的值由GUI以DD-MM-YYYY格式提供 我试过了 select * from salesView where str_to_date(order_date,'%d-%m-%Y') = str_to_date('09-10-2019','%d-%m-%Y') order by oID; 我还尝试了date\u format()而

我已将视图命名为“销售视图”

select * from SalesView;

我想从SalesView获取订单日期为2019年10月9日的记录。 订单日期的值由GUI以DD-MM-YYYY格式提供

我试过了

select * 
from salesView 
where str_to_date(order_date,'%d-%m-%Y') = str_to_date('09-10-2019','%d-%m-%Y')
order by oID;


我还尝试了date\u format()而不是str\u to\u date(),但它没有返回任何结果

检查where子句

where str_to_date(order_date,'%d-%m-%Y') = str_to_date('09-10-2019','%d-%m-%Y')
用数据库存储订单日期的格式替换订单日期的格式YYYY-MM-DD

where str_to_date(order_date,'%Y-%m-%d') = str_to_date('09-10-2019','%d-%m-%Y')

在oracle中,我曾经做过“从TBL中选择*到日期(订单日期,'DD-MM-YYYY')=到日期('DD-MM-YYYY')”;它在oracle中工作。但我不知道在mysql的情况下,我们必须用数据库日期格式替换列的格式。谢谢。与甲骨文的互动不多。但不应该像你所说的那样。。我用同样的想法开发了几个项目。若我们想将textbox提供的字符串和数据库中的字符串进行比较,那个么我将以相同的格式转换列名称和值。大写或小写。“从TBL中选择*,其中上限(列名称)=上限(值由用户确定)”;类似地,在oracle中,我使用公共日期格式转换列和用户的值。它在oracle数据库上仍然可以正常工作。在函数中包装
order\u date
将防止MySQL使用范围扫描来满足该谓词。如果
order\u date
是数据类型date,那么我们只需执行
where order\u date=
。如果
order\u date
是标准的字符串格式,格式总是四位数的年份、破折号和两位数的月份,则情况也是如此。使用STR_TO_DATE函数包装器可以处理字符串格式中的一些差异,使用斜杠作为分隔符,或者使用一位数的月份,将字符串值(如“2019-9-30”或“2019/10/1”)转换为日期数据类型。