是否有类似于Oracle的功能';mysql中的s trunc(sysdate)

是否有类似于Oracle的功能';mysql中的s trunc(sysdate),mysql,Mysql,在Oracle中,我可以进行如下查询: Select * from Orders where trunc(createdDate) = trunc(sysdate) 我得到了今天创建的所有订单 如何在MySql中实现同样的功能 到目前为止,我只能找到类似currentdate()=“07-05-2017”,我不想硬编码日期 谢谢, Dapid Candra是的,您可以使用MySQL的DATE()函数(以及NOW()函数来获取当前日期)。文件 提取日期或日期时间表达式表达式的日期部分 你的问题是

在Oracle中,我可以进行如下查询:

Select * from Orders where trunc(createdDate) = trunc(sysdate)
我得到了今天创建的所有订单

如何在MySql中实现同样的功能

到目前为止,我只能找到类似currentdate()=“07-05-2017”,我不想硬编码日期

谢谢,


Dapid Candra是的,您可以使用MySQL的
DATE()
函数(以及
NOW()
函数来获取当前日期)。文件

提取日期或日期时间表达式表达式的日期部分

你的问题是:

Select * 
FROM Orders 
WHERE DATE(createdDate) = DATE(NOW())
更新

根据@Rahul的建议,我们可以将
DATE(NOW())
替换为
CURDATE()
,因为它返回的日期没有时间戳,例如:

Select * 
FROM Orders 
WHERE DATE(createdDate) = CURDATE()
函数返回任何datetime值的日期部分,函数返回当前日期,因此无需截断其结果:

... date(createdDate)=curdate()
我想快一点

Select * 
FROM Orders 
WHERE createdDate >= curdate();

谢谢你,达珊!谢谢你,影子!你能详细解释一下为什么这个会更快吗?谢谢,Fran。我想因为我只调用了一个函数,而不是2或3。不在列上使用函数可以让查询优化器访问该列上的索引,从而提高性能。如果在该列上使用函数,则会失去该优势。研究术语“sargable”。谢谢@已经被使用过,我知道LIKE和index,但不知道函数和index。我认为这“只是”函数的性能成本。