Mysql 如何选择日期和忽略时间

Mysql 如何选择日期和忽略时间,mysql,sql,select,group-by,Mysql,Sql,Select,Group By,我做了一个SQL语句,我想使用日期,但不使用时间 我的选择是: SELECT DATEPART(dw, [Order].PerformDate) 我的组员是: GROUP BY [Order].PerformDate 现在如何忽略时间?将日期时间值转换为日期: select cast(`Order`.PerformDate as date) as PerformDate 到日期的强制转换日期时间值: select cast(`Order`.PerformDate as date) as P

我做了一个SQL语句,我想使用日期,但不使用时间

我的选择是:

SELECT DATEPART(dw, [Order].PerformDate)
我的组员是:

GROUP BY [Order].PerformDate

现在如何忽略时间?

将日期时间值转换为日期:

select cast(`Order`.PerformDate as date) as PerformDate

到日期的强制转换日期时间值:

select cast(`Order`.PerformDate as date) as PerformDate

您可以使用SQL的
CONVERT
功能

select datepart(dw, CONVERT(DATE,[Order].PerformDate)) 
GROUP BY CONVERT(DATE,[Order].PerformDate)

您可以使用SQL的
CONVERT
功能

select datepart(dw, CONVERT(DATE,[Order].PerformDate)) 
GROUP BY CONVERT(DATE,[Order].PerformDate)
GROUP BY说“我希望每个结果行有一个结果行”。在您的情况下,每个PerformDate一行。如果PerformDate是一个日期时间,但您只希望每个日期有一个结果行,而没有时间,则必须提取日期部分:

group by cast(performdate as date)
您还希望使用
datepart(dw,performdate)
显示工作日,但这不再可能,因为performdate不再可用。只有日期部分是。因此:

select datepart(dw, cast(performdate as date))
from ...
group by cast(performdate as date);
GROUP BY说“我希望每个结果行有一个结果行”。在您的情况下,每个PerformDate一行。如果PerformDate是一个日期时间,但您只希望每个日期有一个结果行,而没有时间,则必须提取日期部分:

group by cast(performdate as date)
您还希望使用
datepart(dw,performdate)
显示工作日,但这不再可能,因为performdate不再可用。只有日期部分是。因此:

select datepart(dw, cast(performdate as date))
from ...
group by cast(performdate as date);
另一种方法:

select date_format(`order`.PerformDate, '%Y%m%d')
...
group by 1
另一种方法:

select date_format(`order`.PerformDate, '%Y%m%d')
...
group by 1

请参阅的functionduplicate,我不认为
datepart
是MySQL函数。你确定你使用的是带有
datapart
的MySQL吗?你使用的是哪个数据库?似乎OP使用的是sql server,如果我错了请纠正我。请参阅的functionreplicate of我不认为
datepart
是MySQL函数。您确定您使用的是MySQL with
datapart
吗?您使用的是哪个数据库?OP似乎使用的是sql server,如果我错了,请纠正我。。