Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Obtenez uniquement la date du regroupement dans la colonne Select from DateTime de SQL Server

Vous pouvez grouper par ceci :

cast(floor(cast(AutoShipItems.NextOrderDate as float)) as datetime)

J'ai mis cela dans une fonction scalaire définie par l'utilisateur pour le rendre plus facile :

create function [dbo].[xfn_TrimTimeFromDateTime]
(
    @date as datetime
)
returns datetime with schemabinding as
begin
    --- Convert to a float, and get the integer that represents it.
    --- And then convert back to datetime.
    return cast(floor(cast(@date as float)) as datetime)
end

Que vous appelleriez alors comme ceci :

GROUP BY
    AutoShipItems.CustomerID, 
    dbo.xfn_TrimTimeFromDateTime(AutoShipItems.NextOrderDate), 
    Customer.FirstName, Customer.LastName, Customer.EmailAddress

Notez que vous devrez peut-être modifier les valeurs dans la clause SELECT, car vous regroupez maintenant par quelque chose de différent.